Вступить в клуб →
лёгкаявопросКорутины и Flow

Thread.sleep внутри корутины на главном потоке

Разработчик хотел сделать паузу перед показом результата и написал:

viewModelScope.launch {
    Thread.sleep(3_000)
    _state.value = Ready
}

Что увидит пользователь?

  • Интерфейс замрёт на три секунды: sleep блокирует поток, на котором выполняется корутина
  • Корутина завершится с исключением: блокирующие вызовы внутри тела корутины запрещены и проверяются на этапе выполнения
  • Пауза будет проигнорирована: внутри корутины блокировка потока не действует, состояние обновится мгновенно
  • Ничего страшного: корутина по умолчанию выполняется в фоновом потоке, поэтому интерфейс продолжит отвечать на нажатия

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела