一尘不染

信号量简单示例

java

谁能分享使用信号量的简单示例?如果可能的话,可以在没有信号量的情况下解决任务,然后再通过信号量来了解任务的主要思想。


阅读 217

收藏
2020-12-03

共1个答案

一尘不染

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

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

}

take()方法发送一个信号,该信号内部存储在信号量中。该release()方法等待信号。接收到信号标志后,再次将其清除,然后release()退出该方法。

阅读本文并看一下这个例子

2020-12-03