2013-04-22 123 views
0

我使用Boost :: interprocess :: message_queue在我的应用程序上启用线程之间的通信。我这样做有两个原因。首先,因为我不需要直接实现共享内存。同步机制,其次是因为我想以这种方式对系统进行建模,因为将来它可能会更改为进程间。Boost线程间通信队列

我的问题是:是否有任何更多的适当机制来启用线上通信给予这种限制,或者我可以继续使用进程间队列而不用担心'进程间开销'?

回答

2

您可以通过使用保护的std::queue一个boost::mutex & boost::condition_variable

安东尼·威廉斯提供了有关如何在他的著作“C++并发在行动”实现一个线程安全的队列极好的说明。

示例代码可在自己的网站在这里:

Just Software Solutions - Implementing a Thread Safe Queue