Выбор ответа Middle Делегаты спрашивают часто обновлено
Режим потокобезопасности by lazy по умолчанию
Вопрос
Какой режим у by lazy { } без аргументов?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: SYNCHRONIZED: инициализатор выполнится ровно один раз. По умолчанию lazy использует SYNCHRONIZED: первое обращение берёт блокировку, остальные потоки ждут готового значения.
Варианты ответа
NONE: без синхронизации, ради скоростиSYNCHRONIZED: инициализатор выполнится ровно один разправильный ответPUBLICATION: инициализатор может выполниться несколько раз- Зависит от платформы: на Android
NONE, на сервереSYNCHRONIZED
Разбор
По умолчанию lazy использует SYNCHRONIZED: первое обращение берёт блокировку, остальные потоки ждут готового значения. PUBLICATION допускает параллельные вычисления, сохраняя первое опубликованное. NONE без синхронизации, для однопоточного кода, его выбирают явно ради скорости. От платформы поведение по умолчанию не зависит.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.