已更新:是否有線程安全,無鎖且可在所有Linux發行版上使用增量 C或C++中可用的函數?線程安全,無鎖增量功能?
1
A
回答
7
GLib有這樣做的功能。你可能會檢查出http://library.gnome.org/devel/glib/stable/glib-Atomic-Operations.html
具體來說,這聽起來像你想g_atomic_int_inc()
4
當前的C和C++標準沒有定義這樣的事情。你的實現可能有一個。
6
我認爲這些是GNU擴展和處理器特定的,但看看GNU C Atomic Builtins。
我認爲還有原子「庫」可用,使用內聯彙編等提供此類功能。
相關問題
- 1. 線程安全無鎖
- 2. 是std :: ifstream線程安全和無鎖?
- 3. 線程安全無鎖陣列
- 4. 鎖ILIST .NET線程安全
- 5. 線程安全掛鉤功能
- 6. 靜態局部變量的線程安全增量
- 7. 鎖定/線程安全訪問XObject
- 8. 此鎖使用線程安全嗎?
- 9. 線程安全用更少的鎖定
- 10. 帶線程安全std :: cout的死鎖
- 11. popen - 鎖還是不線程安全?
- 12. 線程安全隊列死鎖
- 13. 字符串安全功能vs安全增強CRT
- 14. 功能增量
- 15. std ::向量,線程安全,多線程
- 16. C#變量線程安全
- 17. 線程安全在C中增加#
- 18. 線程安全SingletonHolder性能?
- 19. 這種編碼線程是否安全,死鎖安全?
- 20. 使屬性線程安全c#信號量或鎖?
- 21. 安全功能
- 22. java線程安全:線程安全嗎?
- 23. 爪哇 - 線程睡眠 - 鎖定功能
- 24. 構建一個線程安全的GUID增量'
- 25. C++線程安全增量模塊使用std :: atomic
- 26. 多線程和鎖定(線程安全的操作)
- 27. 蟒蛇線程上的線程安全鎖
- 28. 線程安全的並行線程互斥鎖包裝
- 29. https安全功能
- 30. PHP安全功能
這將是的C++ 0x的一部分時散發出來。 – rlbond 2009-11-08 01:10:14
你說「無鎖」,下面指定的選項是無鎖的。 但它們不是免費的;原子操作需要協調處理器上的所有內核,其中包括刷新緩存。 所以如果你發現你的多線程程序每秒增加這個計數器數千次,原子操作將會對你的性能產生明顯的影響。 – 2009-11-09 12:59:12
@Martin:「在這個世界中沒有任何東西是免費的」,這就是我總是說:-)感謝您的評論:我將使用這個設施的頻率非常低。 – jldupont 2009-11-09 13:16:13