Синхронизированный блок - Java

Я понимаю, что синхронизированный блок, предоставляемый в Java, в основном является реализацией повторно входящего мьютекса. Однако является ли синхронизированный блок атомарным?

Итак, как обрабатываются прерывания для потоков, выполняемых в данный момент в синхронизированном блоке - просто снимается ли блокировка, отменяя все изменения, сделанные до сих пор?

РЕДАКТИРОВАТЬ: Что касается части вопроса, касающейся прерываний - как это обычно обрабатывается на Java. Например, я вижу много примеров кода Java, в которых разработчики ловят прерывание, когда (скажем) поток находится в очереди ожидания. Однако в блоке catch все, что они делают, это выводят сообщение о том, что прерывание было вызвано. Мне больше любопытно, что на самом деле происходит с этой веткой? Он удален из очереди ожидания?

7
задан Hari 6 October 2011 в 01:29
поделиться