Sobes.tech
Назад к вопросам
Junior — Middle
66

Можете объяснить принцип работы класса CountDownLatch в Java и для чего он используется?

Компании, где спрашивали
Т-БанкТ-Банк

Ответ от нейросети

sobes.tech AI

Класс CountDownLatch в Java используется для синхронизации потоков. Он позволяет одному или нескольким потокам ждать, пока другие потоки выполнят определённые операции.

Принцип работы:

  • При создании CountDownLatch задаётся счётчик — количество событий, которые должны произойти.
  • Каждый раз, когда одно из этих событий происходит, вызывается метод countDown(), уменьшающий счётчик на 1.
  • Потоки, вызвавшие await(), блокируются и ждут, пока счётчик не станет равен нулю.

Пример использования:

CountDownLatch latch = new CountDownLatch(3); // Ждём 3 события

// Поток 1
new Thread(() -> {
    // Выполнение задачи
    latch.countDown(); // Сигнализируем, что задача выполнена
}).start();

// Поток 2 и 3 аналогично

// Главный поток ждёт, пока все 3 задачи не завершатся
latch.await();
System.out.println("Все задачи завершены, продолжаем работу");

Таким образом, CountDownLatch полезен, когда нужно дождаться завершения нескольких операций перед продолжением работы.