CountDownLatch — это один из самых полезных классов в пакете java.util.concurrent. Он позволяет одному или нескольким потокам ждать, пока другие потоки не завершат определённую работу.
На собеседованиях его часто спрашивают, потому что он демонстрирует понимание координации потоков без блокировок. Давайте разберём два реалистичных сценария, которые вы легко сможете объяснить на интервью. CountDownLatch latch = new CountDownLatch(3); // счётчик = 3 ⚠️ Счётчик не может быть увеличен — только уменьшен. Это «одноразовый барьер». Задача:
Представьте, что ваше приложение зависит от трёх внешних сервисов (база данных, кэш, очередь). Вы не хотите запускать основной цикл, пока все они не готовы. Задача:
Вы отправляете запросы к трём API одновременно и хотите обработать результаты только после того, как все ответят. Пример, рассмотренный в статье, можно найти по адресу: