Sobes.tech
Back to questions
Junior — Middle
80

Какими методами можно инициировать выполнение coroutine в Kotlin?

Companies where asked
Netris

Answer from AI

sobes.tech AI

В Kotlin coroutine можно инициировать несколькими способами, в зависимости от контекста и требований:

  • launch — запускает новую coroutine, не блокируя текущий поток, возвращает Job. Используется для фоновых задач.
GlobalScope.launch {
    // код в coroutine
}
  • async — запускает coroutine и возвращает Deferred, который можно использовать для получения результата асинхронно.
val deferred = GlobalScope.async {
    // вычисление
    42
}
val result = deferred.await()
  • runBlocking — блокирует текущий поток до завершения coroutine, обычно используется в main или тестах.
runBlocking {
    // код
}
  • withContext — переключает контекст выполнения внутри coroutine, например, на другой диспетчер.
withContext(Dispatchers.IO) {
    // операция ввода-вывода
}

Выбор метода зависит от того, нужно ли получить результат, блокировать поток или просто запустить задачу в фоне.