tested Semaphore and BlockingQueue