2014-02-25 57 views
-2

这可能是一个愚蠢的问题,但我想知道信号量如何在Java中工作。我已经阅读了许多关于它的文章(也在stackoverflow上),但无法得到它的想法。简单使用信号灯

预定义的类Semaphore没有任何方法吗?是否像我们必须声明它的对象并编写我们自己的同步方法?

谢谢。

+2

了Java 5+实现你没读'Semaphore'的Javadoc教程和说明?这一切都清楚地解释。 – chrylis

+2

@chrylis Javadoc和其他程序员向你解释的不一样。为什么他不能问一个编程网站关于编程? – michaelsnowden

+0

@doctordoder问一个合理的问题是好的。 “这个班级没有任何方法”是通过参考文档立即回答的小事实问题。 – chrylis

回答

0

“信号量是一个线程同步构造,既可以用于在线程之间发送信号,以避免错过信号,或守卫关键部分,就像您用锁” - Source

快速执行力度会是

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; 
} 

} 

一种在java.util.concurrenthere.