|
|
1
3
正如您所说,要类似于windows风格的事件,您需要一个条件变量和一个布尔标志。当然,如果满足您的需要,您可以将多个布尔标志合并为一个。
但是,您提到的问题(条件变量永远不会得到
通过让第二个线程等待互斥锁被将处理该条件的线程解锁,您可以确保每个条件都得到处理。(注意:在Java中,NoTIFY()方法必须在锁内调用,这取决于实现细节,如果在C++中完成,可能会导致更坏的性能,但确保程序员至少曾经想过如何同步条件与接收方的开机)。 boost.thread不提供windows风格的事件(和posix信号量,顺便说一句)的原因是这些原语很容易出错。如果您不打算将应用程序移植到另一个平台,那么使应用程序适应这种不同的样式可能不值得。 |
|
|
zayd · 在C中Boost程序选项创建的矢量上迭代++ 2 年前 |
|
|
Mimi · CMake使用了错误的boost include目录 2 年前 |
|
|
zxctatar · 如何在一个类中运行两个异步定时器 2 年前 |
|
|
Adrian · 如何确定boost::可选的(和其他)API? 2 年前 |
|
TooTone · boost-pfr是如何获取结构的字段名称的? 2 年前 |