0
A
回答
4
C++語言和標準庫沒有信號燈,甚至線程的任何概念。答案完全取決於你在做什麼平臺;例如,Windows和Linux系統API支持信號量。
1
如果您使用工具(至少的螺紋部)的C++ 11標準庫的編譯器,你會使用std::mutex X;
,或可能std::recursive_mutex X;
,std::timed_mutex X;
或std::recursive_timed_mutex X;
,這取決於你想要什麼樣的能力(缺乏一個聲明,否則表明,我想你想要std::mutex
)。
對於較舊的庫,您可能需要使用pthreads
等效項。如果你需要支持Windows(本身不包括pthreads),你可以使用Anthony Williams的pthreads-win32包。這有兩個好處:第一,它是Posix和類似Posix的系統(例如Linux)的本地特性,第二,雖然它使用略有不同的名稱,但其基本思想幾乎就像C++ 11標準庫中的內容,它在你的編譯器支持它時應該很容易改變。
2
由於C++ 2003將有一段時間看看Boost.Thread
。你不會在那裏找到一個信號量,但是對於你想要做的事情來說,這可能太低了。
+0
「二進制信號量」與互斥量非常相似,這可能是OP想要的。所以Boost.Thread應該沒問題。 +1 – 2011-04-07 23:00:36
相關問題
- 1. 在C++中實現一個二進制信號類
- 2. 二進制信號量在C++中同步線程
- 3. 二進制信號如何進行?
- 4. 如何在Java中實現二進制信號量類?
- 5. 使用二進制信號量作爲計數信號量
- 6. 留下二進制信號量鎖定
- 7. 使用二進制信號
- 8. 如何在if語句的括號中聲明一個變量?
- 9. C#:你如何管理項目中的符號常量?你在哪裏聲明解決方案範圍常量?
- 10. 如何在C#/ .NET中聲明常量?
- 11. 如何在C++中聲明向量?
- 12. 如何在Objective C中聲明一個實例變量?
- 13. 如何在C++中聲明一個原子矢量
- 14. 如何在Objective-C中聲明一個全局變量?
- 15. 如何聲明一個鏈表在C
- 16. 如何聲明一個可變長度std_logic_vector信號
- 17. 如何聲明一個標量變量?
- 18. 在C++中聲明char十六進制常量11
- 19. 你如何閱讀C聲明?
- 20. 你可以在VBScript中聲明一個常量數組嗎?
- 21. 你可以在Go中一次聲明多個變量嗎?
- 22. c + +聲明一個對象與括號
- 23. 你可以在C++中聲明一個指針作爲extern嗎?
- 24. 在Qt腳本原型中聲明一個信號
- 25. 你如何在水豚中聲明一個字符串?
- 26. 二進制數表示在c中的一個長變量#
- 27. 無法在基類中聲明信號
- 28. 計時開銷二進制信號量與互斥量
- 29. 在C中,你如何聲明一個結構的成員是不穩定的?
- 30. 如何在一行中聲明變量和枚舉聲明?
不完全正確,因爲C++ 0x有'std :: thread'和'std :: mutex' ... – 2011-04-07 22:20:06
@ChrisDodd:嚴格來說,「會有」。這仍然只是一個草案,儘管是最後一個! – 2011-04-07 22:41:10