我正在使用boost 1.41.0。有沒有辦法使用提升來找出有多少人等着鎖?有沒有一個函數可以幫助找出有多少人在等待互斥鎖?
2
A
回答
6
否:沒有辦法獲得可靠的答案,因爲它可能會在函數返回之前更改,而Boost的接口也不提供不可靠的方法。
如果你想要這樣的事情,你需要在互斥體旁邊實現你自己的線程安全計數器;我不確定你是否可以可靠地做到這一點,但如果這足夠滿足您的需求,您可以很容易地區分「大約無」,「一些」和「大量」。
+0
「諮詢」號碼怎麼樣? – 2011-08-23 23:09:15
+0
@pst:我不知道一個不可靠的答案如何有用,但是Boost並沒有給出其中的一個。 –
0
您可以在互斥體請求周圍放置一個互斥體,使計數器遞增,並且只允許您在計數器爲零時訪問該互斥體。儘管如此,這看起來像是可怕的矯枉過正。
可能更好的方法是建立一個小隊列,並將所有請求添加到隊列中(push_back和pop_front周圍有一個互斥體以及一個額外的peek_front)。不過,這似乎是一個相當有趣的練習。
相關問題
- 1. 有沒有人可以幫助我?
- 2. 函數可以鎖定互斥鎖嗎?
- 3. 如何找出哪個線程在互斥鎖上有鎖?
- 4. 在使用互斥鎖和等待數據時出現死鎖
- 5. 如何在OpenMP上等待互斥鎖
- 6. 實現互斥確保有界等待
- 7. C++等待互斥
- 8. 有人可以幫助我在Python上創建等效的SUMIFS函數嗎?
- 9. TCL/TK錯誤消息沒有幫助。有些人可以幫助我,請
- 10. 有沒有一個JavaScript庫可以幫助我操作textarea?
- 11. 有人可以幫助我嗎?
- 12. Subclipse沒有幫助。有沒有人得到這個錯誤?
- 13. 有沒有一個JavaScript庫,可以幫助我在rails參數命名約定?
- 14. password_verify有幾個問題希望有人可以幫助我
- 15. 有人可以解釋互斥體以及它如何使用?
- 16. 如何等待,直到互斥鎖解鎖?
- 17. 沒有相應GRANT的等待鎖
- 18. pthread互斥鎖兩個線程互鎖鎖定/解鎖是否有效?
- 19. 有沒有一種方法可以找出定義的方法在該方法外有多少參數? (PHP)
- 20. 有人可以幫我找出這個錯誤
- 21. 有人可以幫我從文檔中找出這個類嗎?
- 22. 有沒有一種工具可以幫助ruby/rails國際化?
- 23. 無法獲取由ACE_Condition持有的互斥等待
- 24. 爲什麼即使您擁有互斥鎖,互斥鎖try_lock也會返回false?
- 25. 有沒有人可以幫助我?我正在寫一個程序(顛倒數組),但它不會運行:(
- 26. 有沒有一種方法可以輕鬆構建Haskell中沒有幫助函數的重複元素列表?
- 27. 有沒有什麼方法可以在javascript中等待輸入的時候暫停一個函數呢?
- 28. procexp如何關閉另一個進程持有的互斥鎖?
- 29. 有多少人可以連接到ServerSocket?
- 30. 一個匿名函數可以有多個輸出參數?
人們還是線程? –
人,但每個人代表一個線程。 – Will