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