Sobes.tech
Back to questions
Junior — Middle
81

Какими методами можно переключать выполнение корутин в рамках одного потока?

Answer from AI

sobes.tech AI

В Kotlin корутины можно переключать внутри одного потока с помощью различных диспетчеров и функций:

  • withContext(Dispatchers.Main) — переключение на главный (UI) поток.
  • withContext(Dispatchers.Default) — переключение на пул потоков для CPU-интенсивных задач.
  • withContext(Dispatchers.IO) — переключение на пул потоков для операций ввода-вывода.

Кроме того, можно использовать yield() для добровольной передачи управления другим корутинам в рамках текущего потока.

Пример переключения контекста:

launch {
    // Работа в основном потоке
    withContext(Dispatchers.IO) {
        // Выполнение операции ввода-вывода
    }
    // Возврат в основной поток
}