Главная

Java

Многопоточность


Synchronizers. (time)


вспомогательные утилиты для синхронизации потоков.

Semaphore :

Пример:

Существует парковка , которая вмещает одновременно не более 5 автомобилей. Если парковка заполнена полностью , то вновь прибывший автомобиль должен подождать пока не освободится хотя бы одно место. После этого он сможет припарковаться.

Semaphore пример

CountDownLatch :

Пример:

Автомобильная гонка. Для начала гонки к старту должны приехать пять автомобилей.

CountDownLatch пример

cyclicBarrier :

Пример:

существует паромная переправа. Паром может одновременно переправлять по три автомобиля за раз. Чтобы не гонять лишний раз паром , ждем когда соберется минимум три автомобиля.

cyclicBarrier пример

Exchanger :

Пример:

Два курьера должны встретьтся в назначеном пункте метро , обменяться посылками и отправиться к клиентам.

Exchanger пример

Phaser :

Пример:

Едет автобуст от начала пути до конечной остановки (потом уезжает на стоянку) . Нужно попути забирать и высаживать пассажиров.

Phaser пример

Полезные ссылки: