1

我有一个程序可以创建 3 个工作程序。在我的情况下,最好的通信方法是通过所有四个程序都可以访问的内存缓冲区。

有没有办法将指针、引用或任何类型的处理程序传递给子进程?

更新

三个子程序正在转换顶点数据,而主程序主要处理 UI、系统消息、错误等。

我希望有某种方法可以利用 OpenCL,以便四个程序可以共享一个上下文。如果这是不可能的,最好能够访问所有程序中的顶点数组。

我想我们现在的目标平台是 Windows,但我们希望它尽可能跨平台。如果没有办法利用 OpenCL 实现这一点,我们可能会退回到为少数不同平台包装这段代码。

4

4 回答 4

2

您的问题取决于平台,因此:

于 2011-08-05T12:45:29.240 回答
1

如果您稍微解释一下共享哪种数据以及系统的其他约束/目标,那么回答您的问题会更容易。

我想知道为什么您认为共享缓冲区会很好?那是因为您想将缓冲区中的指针传递给要处理的数据吗?如果你想跨进程工作,那么你需要共享内存。

如果您根据请求向客户端发送数据,那么客户端-服务器方法又如何呢?

有关您的问题的更多信息有助于给出更好的答案。

于 2011-08-05T12:33:48.897 回答
1

您应该使用命名共享内存和进程间同步。

于 2011-08-05T12:38:05.070 回答
1

这比关于共享内存缓冲区的原始问题要宽一些,但是根据您的设计、数据量和性能要求,您可以查看内存数据库,例如 Redis 或分布式缓存,特别是如果您发现自己处于“发布-订阅”状态' 情况。

于 2011-08-05T21:25:55.920 回答