我正在使用Boost :: interprocess :: message_queue来启用应用程序上的线程之间的通信。我这样做有两个原因。首先,因为我不需要直接实现共享内存。同步机制和第二,因为我想以这种方式建模系统,因为将来它可能会改变为进程间。
我的问题是:在这种限制下是否有更多适当的机制来启用线程间通信,或者我可以继续使用进程间队列而不用担心“进程间开销”?
答案 0 :(得分:2)
您可以使用std::queue
和boost::mutex
保护的boost::condition_variable
{{1}}
Anthony Williams在他的“C ++并发行动”一书中提供了关于如何实现线程安全队列的出色解释。
示例代码可在他的网站上找到: