信号量简单的样本

use*_*896 17 java multithreading

任何人都可以分享使用信号量的简单样本吗?如果有可能是一个没有信号量的解决任务的样本,然后用信号量来理解它的主要思想.

Clo*_*ble 20

这是一个简单的信号量实现:

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

}
Run Code Online (Sandbox Code Playgroud)

take()方法发送信号,该信号存储在信号量内部.该release()方法等待信号.当接收到信号标志再次被清除时,该release()方法退出.

阅读本文并查看此示例