Ответ
Coroutine Context — это набор элементов, определяющих поведение корутины. Он включает в себя:
- Job – управляет жизненным циклом корутины (запуск, отмена).
- Dispatcher – определяет, на каком потоке выполняется корутина (например,
Dispatchers.IO,Dispatchers.Main). - ExceptionHandler – обрабатывает неотловленные исключения.
- CoroutineName – имя для отладки.
Контекст можно комбинировать с помощью оператора +:
val context = Dispatchers.IO + CoroutineName("MyCoroutine") + Job()
Пример использования:
val customContext = Dispatchers.Default + CoroutineName("BackgroundWork")
val job = CoroutineScope(customContext).launch {
println("Running in ${coroutineContext[CoroutineName]?.name}")
}
Контекст наследуется от родительской корутины, если не переопределен явно.