I am getting into Semaphores in Java and was reading this article http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Semaphore.html . The only thing I don\'t
Semaphores ought to be fast and therefore use the atomic concurrency primitives from the Unsafe class, like CAS (compare and swap).
With these primitives synchronization happens on a much lower level and monitors are not needed. (Lock-free synchronization).
In fact the synchronization is performed by a loop continously using CAS until the expected value equals the written/read value.