Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: countdownlatch, synchronization, threads

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

Вопрос объясняет механизм CountDownLatch для синхронизации потоков.

Короткий ответ

CountDownLatch позволяет одному или нескольким потокам ждать, пока другие потоки не завершат работу. Счётчик уменьшается при вызове countDown(), и ожидающие потоки разблокируются при достижении нуля.

Длинный ответ

Основные методы:

  1. CountDownLatch(int count): Создаёт объект с начальным счётчиком.

  2. countDown(): Уменьшает счётчик на 1.

  3. await(): Блокирует поток, пока счётчик не станет 0.

Пример:

CountDownLatch latch = new CountDownLatch(3);

for (int i = 0; i < 3; i++) {
    new Thread(() -> {
        doWork();
        latch.countDown(); // Уменьшаем счётчик
    }).start();
}

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

Когда использовать:

  • Для ожидания завершения нескольких задач перед продолжением.

  • В тестах для синхронизации потоков.

Уровень

  • Рейтинг:

    1

  • Сложность:

    7

Навыки

  • Java

    Java

Ключевые слова

#countdownlatch

#synchronization

#threads

Подпишись на Java Developer в телеграм