将信号量obj置于等待状态的方式

时间:2011-03-11 10:31:01

标签: java semaphore

有没有办法将Semaphore obj置于等待模式?例如,如果我需要等待许多许可证上升到一定数量?

3 个答案:

答案 0 :(得分:2)

只需使用Semaphore.acquire(int permits)即可。它会等到有permits个许可证可用。

如果你想确定以后没有其他线程可以“窃取”许可,那么 next 可用permits许可,用fair创建信号量设为true。

答案 1 :(得分:0)

请查看此链接http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Semaphore.html上的示例。您可以在getNextAvailableItem()方法中添加条件,以等待链接中允许的数量上升到一定数量的示例。分享有关您的问题的更多详情/说明。

答案 2 :(得分:0)

抱歉,我不明白你要做什么。听起来CyclicBarrier在这种情况下会是更好的机制。