Сообщения

Показаны сообщения с ярлыком "Синхронизация в Java"

Спецификация Java 11: 17.1. Синхронизация

Изображение
Язык программирования Java предоставляет несколько механизмов для связи между потоками. Самый простой из этих методов - синхронизация, которая реализуется с помощью мониторов. Каждый объект в Java связан с монитором, который поток может блокировать или разблокировать. Только один поток одновременно может удерживать блокировку на мониторе. Любые другие потоки, пытающиеся заблокировать этот монитор, блокируются до тех пор, пока они не смогут получить блокировку на этом мониторе. Поток t может блокировать конкретный монитор несколько раз; каждая разблокировка отменяет эффект одной операции блокировки. Оператор synchronized (§14.19) вычисляет ссылку на объект; затем он пытается выполнить действие блокировки на мониторе этого объекта и не продолжает дальше, пока действие блокировки не будет успешно завершено. После выполнения действия блокировки выполняется тело синхронизированного оператора. Если выполнение тела когда-либо завершается, нормально или внезапно, действие разблокировки автома...