gpt4 book ai didi

c++ - 多阅读器IPC解决方案?

转载 作者:太空宇宙 更新时间:2023-11-04 14:27:09 25 4
gpt4 key购买 nike

我正在开发一个 C++ 框架(目前只是为了好玩),它允许用户编写使用标准 API 的插件,以便在彼此之间传输数据。将有三种基本的数据传输机制:文件、套接字和某种 IPC 管道系统。该系统的设置使得对于非文件传输,每个流可以有多个读取器。 IE一旦设置了服务器套接字,多台计算机就可以连接并传输数据。不过,我对多阅读器 IPC 系统有点迷茫。

我所有的插件都在线程中运行(虽然我最终可能想去一个基于进程的系统)所以他们住在同一个地址空间,所以某种共享内存系统会工作得很好,我想我会写我自己的循环缓冲区,写指针和读指针在缓冲区周围追逐它,但我怀疑我能否实现与 linux 管道相同的性能。

我很好奇人们会对这样的多阅读器解决方案提出什么建议?管道或域套接字的开销是否足够低,以至于我可以只打开与每个读取器的连接并向每个读取器发出单独的写入?这旨在处理大量数据(数十兆样本/秒),因此性能是必须的。

最佳答案

我开发了一个媒体服务器,我通常使用一个阅读器来处理一组同一类的所有事件套接字。您可以为每个组使用 select() (在阻塞或非阻塞模式下)函数来读取准备好读取的套接字。当套接字数据准备就绪或发生新连接时,我只需调用一个通知回调函数来管理它。

每个读取器(控制一组套接字)可以由单独的线程管理,避免主线程在等待新连接或套接字数据时阻塞。

关于c++ - 多阅读器IPC解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2935948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com