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