我正在使用boost :: thread来处理队列中的消息。 当第一条消息到来时,我启动一个消息处理线程。 当第二条消息到来时,我检查消息处理线程是否完成。我如何知道升压线程是否完成?
如果这样做我开始一个新的 如果没有完成我什么也没做。
如何知道线程是否完成?我试着用joinable(),但它不工作,因为当线程完成时,它仍然可以连接。
我也尝试立即中断这个过程,并在我的线程末尾添加一个中断点,但它不起作用。
感谢
编辑:
我想有我线程睡一个不确定的时间,醒来时,信号被触发。
平均要做到这一点是提高:: condition_variable
我的想法是只有一个处理线程。当它完成处理时,我希望它能够睡眠,并且一旦有新消息到来就能够唤醒它。你知道如何做到这一点与提升? – Arthur 2010-05-11 06:36:17
你会想要一个生产者 - 消费者队列。看到我上面的附录。 – 2010-05-11 14:25:48
我很了解生产者 - 消费者模式。我需要的是一种唤醒事件上线程的方法(当缓冲区不再空时)。我不知道有什么办法做到这一点。 – Arthur 2010-05-12 14:46:30