Krz*_*zyk 53
Go有一个内置的RPC系统(http://golang.org/pkg/rpc/),可以在Go进程之间轻松进行通信.
另一种选择是通过网络连接发送gob编码数据(http://blog.golang.org/2011/03/gobs-of-data.html).
如果没有基准测试,您不应该忽略本地网络.例如,Chrome使用IPC的命名管道,它们在进程之间传输大量数据(例如渲染位图):
我们的主要进程间通信原语是命名管道.在Linux和OS X上,我们使用socketpair()
- http://www.chromium.org/developers/design-documents/inter-process-communication
如果命名管道足够好,它们可能足以满足您的使用需求.另外,如果你写得好,你可以开始使用命名管道(因为它很容易)然后切换到共享内存,如果你发现命名管道的性能不够好(无论语言如何共享内存都不容易).
Go 的内置 RPC 包仍然可用,但请注意,由于outstanding bugs that are hard to fix
(有关详细信息,请参阅https://github.com/golang/go/issues/16844),它已被冻结。