Что такое yield

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

Ответ

yield в Kotlin — это ключевое слово, используемое в корутинах для временной приостановки выполнения без блокировки потока. Оно позволяет другим корутинам работать, пока текущая ожидает завершения операции.

Пример:

suspend fun fetchData() {
    // Долгая операция
    yield() // Позволяет другим корутинам выполниться
    // Продолжение после yield
}

Особенности:

  • Не освобождает диспетчер (не переключает поток)
  • Полезен для кооперативной многозадачности
  • Может использоваться для предотвращения "зависаний" в CPU-bound коде

Важно: yield() не эквивалентен delay(), так как не привязан ко времени.