Semaforos, algoritmos y codigo java

Semáforos

Un semáforo nos sirve para poder permitir o restringir a los procesos o hilos el acceso a algún recurso compartido.
Los semáforos cuentan con dos operaciones básicas, una de ellas es para reservarlo y la otra para liberarlo, wait (espera) y signal (señal) respectivamente, equivalente down y up.
Los semáforos pueden ser binarios o generales. [...]