Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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++ 从消息队列中提取所有项目_C++_Sockets_Message Queue - Fatal编程技术网

C++ 从消息队列中提取所有项目

C++ 从消息队列中提取所有项目,c++,sockets,message-queue,C++,Sockets,Message Queue,有一个连接到多个套接字的应用程序。它有两个线程,接收线程和处理线程。因此,在它们之间,我创建了一个消息队列。由于不需要逐个处理消息,因此可以从队列中提取所有消息,然后更新内部数据结构。最后,开始处理。目前,我创建了自己的消息队列。我只是想知道是否有更好的选择。ps性能至关重要 编辑:更好意味着良好的性能,易于使用和保证交付。可选:使用zeromq执行此操作。您可能希望更清晰地定义“更好”。很多东西都可以让msgq变得“更好”,除非它们不是您关心的东西(例如,保证交付)。Q:通过“创建我自己的消息

有一个连接到多个套接字的应用程序。它有两个线程,接收线程和处理线程。因此,在它们之间,我创建了一个消息队列。由于不需要逐个处理消息,因此可以从队列中提取所有消息,然后更新内部数据结构。最后,开始处理。目前,我创建了自己的消息队列。我只是想知道是否有更好的选择。ps性能至关重要


编辑:更好意味着良好的性能,易于使用和保证交付。可选:使用zeromq执行此操作。

您可能希望更清晰地定义“更好”。很多东西都可以让msgq变得“更好”,除非它们不是您关心的东西(例如,保证交付)。Q:通过“创建我自己的消息队列”,我猜您没有使用任何标准库,如SysV消息队列、Microsoft消息队列或WCF或rabbitmq。对吗?对。只需使用std::deque和boost::mutex来创建消息队列。顺便说一句,应用程序正在Linux平台上运行。您的应用程序将绑定到网络。正确实现的数据结构的性能将不是速率决定步骤。担心其他的事。是的。我更关心上下文切换。