是否有将信号量obj置于等待模式的方法?例如,如果我需要等待许多许可证才能升到一定数量?将信号量obj置于等待状态的方式
回答
只需使用Semaphore.acquire(int permits)。它将等待,直到有permits
许可证可用。
如果你想以确保没有其他线程晚些时候推出可以“偷”许可证,所以它需要的下一个可用permits
许可证,创建信号量与fair
设置为true。
请查看此链接的示例http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Semaphore.html。您可以在getNextAvailableItem()方法中添加条件以等待许可证的数量上升到链接中的一定数量的示例。分享有关您的问题的更多详情/说明。
对不起,我不明白你想要做什么。听起来像CyclicBarrier在这种情况下会是一个更好的机制。
你能否提供一个工作示例? – 2011-03-11 13:09:06
感谢编辑,但这不会让我给他们(线程)成对访问一个对象。对不起,我没有说明这是我的OP。我需要的是只有两个线程才能访问一个对象,并且只有在这两个线程完成这个对象后,另外两个线程才能访问它。再次抱歉,不要在OP中进行specyfing。 – 2011-03-11 13:40:05
- 1. dispatch_semaphore_wait不等待信号量
- 2. 等待信号
- 3. 等待信号
- 4. 调度等待信号量的进程
- 5. 等待的线程数和信号量
- 6. 将调用线程置于可警告等待状态
- 7. 跨线程事件信号(Obj-C)的同步/等待设计?
- 8. 做信号量满足有界等待
- 9. 信号量等待()在多核
- 10. 尝试等待信号量时出错
- 11. 处于等待状态的HTTP线程数量非常多
- 12. 等待/信号(信号量)如何实现伪代码“工作”?
- 13. 当父亲处于等待信号量时避免僵尸
- 14. Elasticsearch等待索引状态
- 15. 等待后检查状态()
- 16. Java信号量默认使用忙等待还是等待/通知?
- 17. 更改状态为“等待上传”的应用的设置
- 18. pthread除了等待和信号
- 19. 等待多信号 - 并行线程
- 20. Bash有等待忽略信号
- 21. QSignalSpy等待和两个信号
- 22. progressDialog并等待一个信号
- 23. 如何等待量角器中的按钮禁用状态?
- 24. PHP:改变用户等待批量接受的状态
- 25. 如何在长时间运行的方法中等待信号?
- 26. 如何找出线程已处于等待状态的时间
- 27. Eclipse正在显示处于等待状态的每个任务
- 28. Java ExecutorService - 处于等待状态的线程
- 29. 在等待超时时发送信号灯信号
- 30. 超时等待状态更改(变量更改)的有效方法?
无法显示链接。 – 2011-03-11 10:56:48
更新了链接。 – Samra 2011-03-11 10:59:25
这并不显示如何将信号置于“等待”状态。只要有一个许可证可用,信号量就会让它通过,但我需要一些信号量会阻塞的东西,直到至少有n个许可证可用。 – 2011-03-11 11:09:59