Как работает ReentrantLock?

Middle
290 просмотров
AFK Offer AI

ReentrantLock — реализация Lock, которую можно захватить повторно тем же потоком (reentrant — как и synchronized). Создаёшь new ReentrantLock(true) — fair, потоки обслуживаются в порядке ожидания. lock() — захват, unlock() — освобождение (всегда в finally!). tryLock() — неблокирующая попытка, удобна для избежания deadlock. getHoldCount() — сколько раз захвачен. isLocked(), getQueueLength() — для мониторинга. Condition заменяет wait/notify — можно иметь несколько условий на одном локе.

Следующий вопрос

Что такое backpressure в реактивном программировании?