【问题标题】:Simple use of semaphore信号量的简单使用
【发布时间】:2014-02-25 00:13:17
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 您没有阅读 Semaphore 的 Javadoc 吗?这都解释清楚了。
  • @chrylis Javadoc 与其他程序员向您解释的不同。为什么他不能向编程网站询问编程?
  • @doctordoder 问一个合理的问题很好。 “这个类没有任何方法”是通过参考文档立即回答的琐碎事实问题。

标签: java concurrency semaphore


【解决方案1】:

“信号量是一种线程同步结构,可用于在线程之间发送信号以避免丢失信号,或者像使用锁一样保护关键部分”-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.中Java 5+实现的教程和解释

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    相关资源
    最近更新 更多