boost和单线程事件驱动模型

And*_*rei 6 c++ events boost

Boost不提供单线​​程事件驱动模型,这在Unix之前普遍存在于pthreads - mainloop +"callbacks"之外,是吗?

例如,如果我想在单线程应用程序中使用boost :: message_queue,并将其与计时器和其他异步事件(mainloop)混合使用,那么boost不支持它,我是对的吗?

seh*_*ehe 10

我看看

  1. Boost :: Signals(您可以根据需要精确使用它们)
  2. Boost :: Asio(最重要的是:绞线).Strands将让你拥有你的蛋糕并吃它(通过单线程语义,同时仍然启用并行工作,如果你允许我的COM感染双关语,在另一个'单线程公寓' ).关于你的问题,这是正确的,因为它会自动同步和排队工作,以便在你调用它时进入'主'线程.

如果要将两者结合使用,请务必使用Boost Signals2(因为它支持线程).


Tob*_*obu 6

boost::interprocess::message_queue专为多处理而设计.在单线程进程中,您始终可以使用std::queue.