синхронизирано изявление в Java, блог за криптиране
Синхронизиране на обект не може да използва само методите със съответната
yuschim модификатор, но също чрез синхронизирано код блок. В този сценарий, заключването на обект се отбелязва в изявлението синхронизирани,
и тя става недостъпна за други методи и синхронизирани блока. Конвенционалните методи за синхронизиране не обръщат внимание, така че отговорността за компетентен заключване обект пада на програмиста.
В резултат на съставянето и работи най-вероятно (тъй като на втория поток и може да блокира първият обект), изход:
Един от потоците блокиращи обект, и доколкото това е завършен синхронизация изпълнение блок, в който се прави промяна в стойността на обекта, няма друга нишка не може да предизвика синхронизирано блок за този обект.
Ако премахнете обекта и код синхронизация. след това на изхода ще бъде различно, защото друга нишка да получите достъп до обекта и да го промените, преди първата завърши цикъла.
Следващият пример показва чакане на взаимодействие () и
уведомява (), когато освобождаването и завръщането на запушване на синхронизирани блока. Тези методи се използват за контрол на потока в ситуация, когато е необходимо да посочите последователност от действия, без да се рестартира нишки.
изчакайте метод (). причинени вътре синхронизирано блок или метод спира изпълнението на текущата нишка и освобождава уловен само от блокиране, по-специално ключалка обект. потока на връщане да заключите обект, като се обадите уведоми () за определен поток или
notifyAll () за всички потоци. Поканата може да бъде направено само от друга нишка заключена, от своя страна, заяви, обект.
обществени клас Блокирани