Linux多进程通信多个生产者一个消费者 我需要在C++上构建一些类似于客户端服务器的应用程序。目标是用多个线程跟踪多个进程(跟踪函数执行),并将这些数据收集到按线程id划分的文件中

Linux多进程通信多个生产者一个消费者 我需要在C++上构建一些类似于客户端服务器的应用程序。目标是用多个线程跟踪多个进程(跟踪函数执行),并将这些数据收集到按线程id划分的文件中,c++,linux,multithreading,ipc,interprocess,C++,Linux,Multithreading,Ipc,Interprocess,现在,我已经在POSIX消息队列(服务器侦听队列并从生产者收集数据)上实现了这一点,但工作速度非常慢。关于在Linux平台(C++语言)上实现的任何其他想法。完成这项任务的最佳沟通方式是什么?顺便说一句,一个线程范围内的数据顺序对我来说非常敏感。Posix消息队列是内核级别的东西,所以速度很慢。我建议您使用共享内存作为介质来实现自己的队列—我认为您有一个多进程(而不是多线程)应用程序。有几个想法: (一) 使用快速酒吧子系统。是此类消息传递系统的一个示例 (二) 你可以让所有的客户都写在一个账本

现在,我已经在POSIX消息队列(服务器侦听队列并从生产者收集数据)上实现了这一点,但工作速度非常慢。关于在Linux平台(C++语言)上实现的任何其他想法。完成这项任务的最佳沟通方式是什么?顺便说一句,一个线程范围内的数据顺序对我来说非常敏感。

Posix消息队列是内核级别的东西,所以速度很慢。我建议您使用共享内存作为介质来实现自己的队列—我认为您有一个多进程(而不是多线程)应用程序。

有几个想法:

(一) 使用快速酒吧子系统。是此类消息传递系统的一个示例

(二) 你可以让所有的客户都写在一个账本上。然后添加一个阅读器进程,该进程轮询分类账以获取新的数据聚合/处理结果

<> P>有几种方法来实现这样的分类帐,一个例子是(用C++实现V3-)。