C + + 0x 真的没有信号量吗?关于 Stack Overflow,已经有一些关于信号量使用的问题。我一直使用它们(posx 信号量)让一个线程等待另一个线程中的某个事件:
void thread0(...)
{
doSomething0();
event1.wait();
...
}
void thread1(...)
{
doSomething1();
event1.post();
...
}
如果我使用互斥对象:
void thread0(...)
{
doSomething0();
event1.lock(); event1.unlock();
...
}
void thread1(...)
{
event1.lock();
doSomethingth1();
event1.unlock();
...
}
问题: 它很丑陋,而且不能保证 thread1会首先锁定互斥锁(假设同一个线程应该锁定和解锁互斥锁,那么在 thread0和 thread1启动之前也不能锁定 event1)。
因此,既然 Boost 也没有信号量,那么实现上述目标的最简单方法是什么呢?