2012-03-26 19 views
17

¿Alguien puede compartir una muestra simple del uso de semáforo? Si es posible una muestra de resolver una tarea sin semáforo y luego con semáforo para entender la idea principal de la misma.Muestra simple de semáforo

+1

el Javadoc de 'java.util.concurrent.Semaphore' tiene un ejemplo. (y google tiene algo más, por cierto: * semáforo ejemplo java *) –

Respuesta

20

Aquí es una sencilla aplicación Semáforo:

public class Semaphore { 
    private boolean signal = false; 

    public synchronized void take() { 
    this.signal = true; 
    this.notify(); 
    } 

    public synchronized void release() throws InterruptedException{ 
    while(!this.signal) wait(); 
    this.signal = false; 
    } 

} 

El método take() envía una señal que se almacena internamente en el semáforo. El método release() espera una señal. Cuando se recibe, el indicador de señal se borra nuevamente y el método release() sale.

Leer this article y echar un vistazo a este example