向boost中的线程发送信号以继续

向boost中的线程发送信号以继续,boost,Boost,boost中是否有任何函数可以让线程等待,直到某个特殊信号激活线程继续?我不喜欢使用whiletrue{ifevent happendbreak;},因为while总是在运行,但我正在寻找一个函数,它会阻止线程,直到应用程序中发生某些信号或事件。例如,类似这样的内容: void thread(){ while(true) { // Wait For Signal(s); // do your task } } 这正是我们的目的。@DavidSch

boost中是否有任何函数可以让线程等待,直到某个特殊信号激活线程继续?我不喜欢使用whiletrue{ifevent happendbreak;},因为while总是在运行,但我正在寻找一个函数,它会阻止线程,直到应用程序中发生某些信号或事件。例如,类似这样的内容:

void thread(){

   while(true) {
        // Wait For Signal(s);

        // do your task
   }
}

这正是我们的目的。@DavidSchwartz是的,你是对的:Thanks@DavidSchwartz好啊因此,如果我调用mutex.lock,它将阻塞线程,直到其他线程解锁该互斥体?是的,但是对于条件变量,您只能在瞬间保持互斥体。这就是为什么我说您应该使用条件变量。这把锁只会锁上一秒钟。长期等待是在条件变量上完成的。