Semaphore in Java

We'll cover the following