Назови два ключевых слова Java, используемых в контексте многопоточной обработки, и объясни зачем нужен volatile.

Два ключевых слова — synchronized и volatile. Первое задаёт мониторную синхронизацию, второе — гарантии видимости и порядка для доступа к полю без взаимного исключения.

Короткий ответ

Что ответить на собеседовании

Два ключевых слова — synchronized и volatile. Первое задаёт мониторную синхронизацию, второе — гарантии видимости и порядка для доступа к полю без взаимного исключения.

Подробный разбор

Ответ с пояснениями

Два ключевых слова — synchronized и volatile. Первое задаёт мониторную синхронизацию, второе — гарантии видимости и порядка для доступа к полю без взаимного исключения.

volatile подходит для простого флага или публикации неизменяемого состояния. Операции вроде increment и согласованного изменения нескольких полей оно не делает атомарными. synchronized защищает критическую секцию, если все участники используют один монитор. Выбор определяется инвариантом и конкурентными действиями, а не только желанием убрать предупреждение анализатора.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее