谁能分享使用信号量的简单示例吗?
如果有可能在没有信号量的情况下解决任务的示例,然后使用信号量来理解它的主要思想。
这是一个简单的信号量实现:
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;
}
}
The take()
方法发送一个信号,该信号存储在信号量内部。这release()
方法等待信号。当接收到信号标志时再次清除,并且release()
方法退出。
Read 本文 http://tutorials.jenkov.com/java-concurrency/semaphores.html看看这个example http://www.javaworld.com/javaworld/javaqa/1999-11/02-qa-semaphore.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)