这可能是一个愚蠢的问题,但我想知道信号量如何在Java中工作。我已经阅读了很多关于它的文章(也在stackoverflow上)但是无法理解它。
预定义的Semaphore类有没有任何方法?是不是我们必须声明它的对象并编写我们自己的同步方法。
感谢。
答案 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.