Назад к вопросам
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")
}
}