unit test for Semaphore

See the comments below about creating a powerful test thread. So your code probably can be simplified to:

```
semaphore.init(0)
AcquireThread acquireThread = new AcquireThread(semaphore)
acquireThread.start()
assertTrueAllTheTime(
    void run(){
            assertTrue(acquireThread.isAlive())
            assertEquals(0, semaphore.permitCount())            
 5seconds)
```