简单使用信号量

时间:2014-02-25 00:13:18

标签: java concurrency semaphore

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

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

感谢。

1 个答案:

答案 0 :(得分: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.concurrent包中here.

中Java 5+实现的教程和说明