Вступить в клуб →
средняявопросKotlin: классы, коллекции и идиомы

Два потока одновременно обращаются к базе, объявленной через by lazy

object Storage {
    val db: AppDatabase by lazy {
        Room.databaseBuilder(App.context, AppDatabase::class.java, "shop.db").build()
    }
}

При старте воркер синхронизации и главный экран одновременно обращаются к Storage.db. Коллега опасается, что создастся два экземпляра базы. Сколько раз выполнится блок lazy?

  • Один раз: lazy по умолчанию синхронизирован
  • Два раза: lazy не потокобезопасен
  • Один раз, но второй поток получит null
  • Зависит от того, какой поток был первым

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

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

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

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