Что делает ключевое слово synchronized?

Middle
446 просмотров
AFK Offer AI

synchronized обеспечивает взаимное исключение — только один поток выполняет блок кода одновременно. На методе — блокирует this (для instance) или Class (для static). synchronized(obj) — блокирует конкретный объект-монитор. Гарантирует visibility — изменения видны другим потокам после выхода из блока. Недостатки: нельзя прервать ожидание блокировки, нет tryLock, нет fairness. Для сложных сценариев используй ReentrantLock. Не забывай: синхронизация на this — любой может взять твой монитор, лучше приватный объект.

Следующий вопрос

Как работают лямбда-выражения в Java?