BroadcastChannel<Int>(1)
                  
                  
                  
                  
                  
                  private fun bind(scope: CoroutineScope) = scope.launch {
                  
                  
                          channel.openSubscription()
                  
                  
                                  .consumeEach { println(it) }
                  
                  
                  }
                  
                  
                  
                  
                  
                  1. Нет suspend, следовательно пользователь нашей функции сразу видит, что долгой работы никакой не будет.
                  
                  
                  2. Мы явно передали скоуп, показывая, что нашу функцию не стоит вызывать в цикле, так как каждый созданный скоуп… А можно поподробнее про OutOfMemoryError? Потому что каждый созданный скоуп - это дороже по памяти, чем просто вызванная suspend-функция?
                  
                  
                
Разумеется дороже. Это не тред, конечно, но тоже сильно не бесплатно.
Обсуждают сегодня