Два потока одновременно обращаются к базе, объявленной через 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
- Зависит от того, какой поток был первым
