Sobes.tech
Назад к вопросам
Junior — Middle
75

Какие способы выполнения задач в Coroutines ты знаешь?

Компании, где спрашивали
Газпром МедиаГазпром Медиа

Ответ от нейросети

sobes.tech AI

В Kotlin Coroutines задачи можно выполнять несколькими способами:

  • launch — запускает новую корутину, которая выполняется параллельно и не возвращает результат. Используется для фоновых задач, где не нужен результат.

  • async — запускает корутину, которая возвращает результат в виде Deferred, позволяя получить результат через await(). Подходит для параллельных вычислений с результатом.

  • runBlocking — блокирует текущий поток до завершения корутины, часто используется в main-функциях или тестах.

  • withContext — переключает контекст выполнения (например, на Dispatchers.IO для операций ввода-вывода) и выполняет блок кода, возвращая результат.

Пример:

import kotlinx.coroutines.*

fun main() = runBlocking {
    launch {
        delay(1000)
        println("Задача в launch")
    }

    val result = async {
        delay(500)
        42
    }

    println("Результат async: ${result.await()}")
}