Найти тему
Михаил Левин

Синхронизация потоков

Object monitor - это объект для синхронизации, именно на нем содержатся статусы монитора и когда один поток заходит в блок синхронизации, другой поток уже не может зайти и находится в состоянии блокировки. Когда все потоки находятся в состоянии блокировки это называется взаимная блокировка или deadlock.

Метод wait помещает текущий поток, который находится в блоке синхронизации в список (на самом деле множество) ожидания, в котором он будет находится до тех пор, пока кто то из вне его не освободит. Освободить один поток из списка ожидания можно средствами метода notify (какой то один поток из списка. не обязательно самый ранний, вообще любой). Так же имеется метод notifyAll, который освобождает весь список ожидания.

 Код из видео ролика
Код из видео ролика