Назад к вопросам
Middle
73
questionbank

Что представляет собой сущность контекста корутин?

Sobes Copilot

Получайте ответы в реальном времени

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

sobes.tech AI

Контекст корутины — это набор элементов, определяющих поведение корутины. Он включает в себя:

  • Job: Управляет жизненным циклом корутины (отмена, завершение).
  • CoroutineDispatcher: Определяет потоки или пулы потоков, где будет запущена корутина.
  • CoroutineExceptionHandler: Обрабатывает необработанные исключения внутри корутины.
  • CoroutineName: Используется для отладки (отображается в логах).

Контекст создается при запуске корутины и может быть объединен из разных контекстов.

Пример создания объединенного контекста:

import kotlinx.coroutines.*

fun main() = runBlocking {
    val context = Dispatchers.Default + CoroutineName("MyCoroutine") + CoroutineExceptionHandler { _, throwable ->
        println("Caught: $throwable")
    }
    launch(context) {
        println("Running in MyCoroutine with dispatcher ${coroutineContext[CoroutineDispatcher]}")
        throw IllegalStateException("Something went wrong")
    }
}