CountDownLatch & semaphore.
Address InterrupttedException issues.