boost和单线程事件驱动模型

boost and single-threaded event-driven model

本文关键字:模型 事件驱动 单线程 boost      更新时间:2023-10-16

Boost不提供单线程事件驱动的模型,在pthreads--mainloop+"回调"之前,这种模型在Unix上很普遍,是吗?

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

我会看看

  1. Boost::信号(你可以随心所欲地使用它们)
  2. 助推::阿西奥(最重要的是:股)。Strands会让你有蛋糕吃(通过具有单线程语义,同时仍然启用并行工作,在另一个"单线程公寓"上,如果你允许我的COM感染双关语)。对于您的问题,这是非常重要的,因为它将自动同步和排队工作,以便在您调用的"主"线程上进行

如果要将两者结合起来,请确保使用Boost Signals2(因为它支持线程)。

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