В чём разница: CountDownLatch vs CyclicBarrier vs Semaphore?

Ответ

CountDownLatch: одноразовый счётчик, потоки ждут обнуления. CyclicBarrier: переиспользуемый, все потоки ждут друг друга. Semaphore: ограничение числа одновременных потоков (пул ресурсов).

Разбор: CountDownLatch — одноразовый счётчик: потоки ждут, пока он не обнулится через countDown(), повторно не сбрасывается. CyclicBarrier переиспользуем и заставляет фиксированное число потоков дождаться друг друга в общей точке. Semaphore выдаёт ограниченное число разрешений (acquire/release), ограничивая параллелизм. Ловушка — перепутать переиспользуемость (cyclic именно у барьера) и роли примитивов.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться