Java · Hard
Differentiate between CountDownLatch, CyclicBarrier, and Semaphore with use cases.
JavaAdvanced JavaConcurrency
Answer preview
Semaphore — Controls access to a shared resource by maintaining a set of permits. acquire() takes a permit (blocks if none available); release() returns one. Use case: Connection pool limiting, rate limiting.…