有没有办法将Semaphore obj置于等待模式?例如,如果我需要等待许多许可证上升到一定数量?
答案 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在这种情况下会是更好的机制。