This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Depending on what you want to do, many of the uses of semaphores are easier to implement in Java using the synchronized keyword. If you're already ruled that out for your application, then by all means use Doug Lea's libraries, which offer a far wider assortment of control mechanisms.