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