Что такое контекст исполнения

«Что такое контекст исполнения» — вопрос из категории Многопоточность, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

  1. Dispatcher — определяет, на каком потоке выполняется корутина (например, Dispatchers.Main, Dispatchers.IO).
  2. Job — управляет жизненным циклом корутины (отмена, завершение).
  3. ExceptionHandler — обрабатывает необработанные исключения.

Пример:

val customContext = Dispatchers.Default + Job() + CoroutineExceptionHandler { _, e -> 
    println("Caught exception: $e") 
}

GlobalScope.launch(customContext) {
    // Код корутины
}