是否有將信號量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