【发布时间】:2018-08-29 05:16:34
【问题描述】:
这与之前的帖子有关:
Allocating a large memory block in C++
我想要一个运行生成巨型矩阵M 的 C++ 服务器。然后,在同一台机器上,我想运行其他可以联系此服务器的程序,并获取M 的内存地址。 M 是只读的,服务器创建一次。我应该能够生成一个客户端./test,并且这个程序应该能够对M 进行只读访问。服务器应该一直在运行,但我可以随时运行其他程序,例如./test。
我对 C++ 或 OS 了解不多,最好的方法是什么?我应该使用 POSIX 线程吗?矩阵是原始类型(double、float 等),所有程序都知道它的维度。客户端程序需要整个矩阵,所以我不希望从服务器到客户端的 mem 复制延迟,我只想直接共享该指针。我的最佳选择是什么?
【问题讨论】:
-
共享内存或其他IPC。注意:不能将指针传递给其他程序,因为指针指向的是当前进程的私有数据地址。
标签: c++ shared-memory