Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ boost和单线程事件驱动模型_C++_Events_Boost - Fatal编程技术网

C++ boost和单线程事件驱动模型

C++ boost和单线程事件驱动模型,c++,events,boost,C++,Events,Boost,Boost不提供单线程事件驱动模型,这种模型在pthreads--mainloop+回调之前在Unix上很普遍,是吗 例如,如果我想在单线程应用程序中使用boost::message_queue,并将其与计时器和其他异步事件(mainloop)混合使用,那么boost不支持它,对吗?boost::interprocess::message_queue是为多处理而设计的。在单线程进程中,您始终可以使用std::queue我将介绍 (您可以完全按照自己的意愿使用它们) (最重要的是:)。Thread

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


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

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

我将介绍

  • (您可以完全按照自己的意愿使用它们)
  • (最重要的是:)。Threads会让你吃到蛋糕,吃到蛋糕(如果你允许我的COM双关语的话,在另一个“单线程单元”上使用单线程语义,同时仍然支持并行工作)。就你的问题而言,这是正确的,因为它会自动同步工作并将工作排队,以便在你所称的“主”线程上进行

  • 如果你要把两者结合起来,一定要使用(因为它支持线程)。

    我不知道为什么你认为多重处理与单线程有矛盾。每个平台上都存在单线程进程中的事件驱动“多处理”。在Unix上,对于网络应用程序,它是主要的模式,许多网络应用程序仍然使用它。为了在多核系统上扩展,这个模型使用多个单线程进程。我知道多进程模型,不需要推广。您似乎在询问单个事件循环中的协调,这不需要IPC。