这是一个简单的信号量实现:
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; }}该
take()方法发送一个信号,该信号内部存储在信号量中。该
release()方法等待信号。接收到信号标志后,再次将其清除,然后
release()退出该方法。
阅读本文并看一下这个例子



