Hola
Semáforos
Los semáforos en java controlan procesos, lo que tu preguntas es como ejercer ese control por medio de código en java, voy a intentar explicar a continuación.
Los semáforos son un concepto que surge cuando se estudia a profundidad los sistemas operacionales que permiten compartir los recursos hardware o software de la máquina, el S.O. administra estos recursos con el fin de hacer que los procesos en ejecución puedan acceder a ellos, pero también deben controlar que estos sean bien utilizados por los procesos, por ejemplo: los procesos en ejecución utilizan el procesador para procesar información, en la mayoría de computadoras personales existe un solo procesador, entonces el sistema operativo le asigna a cada proceso un tiempo para que estos usen el procesador, este tiempo es llamado quantum, así mismo los procesos necesitan ser cargados en la ram, entonces el sistema operativo debe gestionar la escritura en la ram sin que un proceso solape la información de un proceso que ya escribió en ella, o leer el disco duro o enviar una trama por la tarjeta de red.
Por ejemplo: se necesita controlar el acceso a la impresora por que n procesos intentan imprimir pero todos no pueden imprimir al tiempo ya que la información de las hojas impresas no saldría bien.
Es entonces cuando podríamos crear un semáforo que les indique a los procesos cuando está desocupado el recurso para que estos compitan por el y todos puedan usar la impresora.
en el siguiente link le respondí a alguien una vez sobre como simular una impresora en java, lee todo ese hilo y antes del final está mi respuesta.
http://foros.solocodigo.com/index.php?show...=11991&hl=hilosEspero sirva de algo, suerte.