是否有將信號量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. 調度等待信號量的進程
- 8. 等待GPS信號
- 9. 處於等待狀態的TP-Processorxx
- 10. 跨線程事件信號(Obj-C)的同步/等待設計?
- 11. 信號量等待()在多核
- 12. 等待隊列VS信號量在linux
- 13. 做信號量滿足有界等待
- 14. 嘗試等待信號量時出錯
- 15. 信號量不會彼此等待
- 16. QEventLoop用於同步等待信號
- 17. 等待(空)和等待(&狀態)C語言和狀態
- 18. 處於等待狀態的HTTP線程數量非常多
- 19. 等待/信號(信號量)如何實現僞代碼「工作」?
- 20. 信號量或鎖等待列表服務於LIFO命令
- 21. 當父親處於等待信號量時避免殭屍
- 22. 有限等待信號燈
- 23. GWT - 睡眠\等待信號?
- 24. Spark Streaming - 批量處於等待狀態,應用程序無效
- 25. 信號量等待事件觸發窗口形式
- 26. Elasticsearch等待索引狀態
- 27. AsyncTask進入等待狀態
- 28. 等待後檢查狀態()
- 29. 等待狀態解析(NGRX)
- 30. Android呼叫等待狀態
無法顯示鏈接。 – 2011-03-11 10:56:48
更新了鏈接。 – Samra 2011-03-11 10:59:25
這並不顯示如何將信號置於「等待」狀態。只要有一個許可證可用,信號量就會讓它通過,但我需要一些信號量會阻塞的東西,直到至少有n個許可證可用。 – 2011-03-11 11:09:59