CountDownLatch — это утилита синхронизации в Java, которая позволяет одному или нескольким потокам ждать, пока завершатся операции, выполняемые в других потоках.
Класс хранит внутренний счётчик, который инициализируется с определённым значением. Потоки могут:
await(), чтобы заблокироваться и ждать у защёлкиcountDown(), чтобы уменьшить счётчик на единицуКак только счётчик достигает нуля, все ожидающие потоки освобождаются и могут продолжить выполнение одновременно.
CountDownLatch latch = new CountDownLatch(3);
// Рабочие потоки вызывают:
latch.countDown();
// Главный поток вызывает:
latch.await(); // Блокируется до достижения счётчиком нуля
CountDownLatch идеален для сценариев одноразовой синхронизации. Если тебе нужна переиспользуемая синхронизация, рассмотри CyclicBarrier.
CountDownLatch можно повторно использовать несколько раз после того, как его счётчик обнулится, вызвав метод reset.
Новый — ещё не проверен сообществом
Вы