2012-05-10 124 views
1

增强是否有某种方式使消息传递跨多个线程?消息传递与boost :: threads?

我正在处理服务器应用程序,我希望能够以安全的方式在整个应用程序中传递消息。

感谢

回答

3

您也可以为此使用Boost.Asio:在一个线程中运行io_service,并从另一个线程调用io_service_.post(yourFunctor)。

2

boost::thread提供您所需的工具,并没有应该让你开始,一个样本队列实现here

这也给了我另一个机会来插上这本书。

C++并发行动是一个参考和指导,以新的C++ 11 标准为有经验的C++程序员,以及那些谁 从来没写过的多线程代码。本书将向您展示如何在C++中编写 健壮的多线程应用程序,同时避免许多常见的缺陷。

如果您正在使用Windows Visual C++ 10在Concurrency Runtime中有一些专有工具可用于此处。 VC11扩展了这一点。

+1

它已经发布。 http://www.amazon.com/C-Concurrency-Action-Practical-Multithreading/dp/1933988770 –

+0

谢谢@Jerry,关于时间太:-) –

+0

+1为我正在寻找。我在链接的文章中评论过,但是我想我也会在这里发表评论:为了使用'unique_ptr'队列在C++ 11中完成这项工作,我添加了'push'的右值引用超载,在这里评论)。看起来没错,还有其他需要的东西? –