【发布时间】:2011-11-27 15:04:45
【问题描述】:
我可以看到如何在 Java 中实现“标准”信号量类。但是,我看不到如何在 Java 中实现二进制信号量类。这种实施如何运作?我应该什么时候调用唤醒和通知方法来唤醒和停止信号量上的线程? 我了解二进制信号量是什么,但我不知道如何对其进行编码。
编辑说明:意识到我说的是“BINARY”信号量类。我已经做过标准的 Semaphore 类,并且我知道它是正确的,所以标准的 Semaphore 类对我不感兴趣。
【问题讨论】:
-
你有没有尝试过;借鉴现有信号量类的源代码,如果它只有 1 的许可,它将如何表现。
-
你读过(例如在维基百科上)(二进制)信号量的定义吗?你能解释一下为什么给定的答案(尤其是 Vikas 的答案或更广泛的 Alexander 答案)是不够的吗?否则,您可以尝试解释用例(出于什么目的您需要二进制信号量/互斥量?)
标签: java multithreading concurrency semaphore concurrent-programming