对于共享内存是好是坏,我们不能妄下定论,不过学习一下总是好的。
不同进程之间内存空间是独立的,也就是说进程不能访问也不会干扰其他进程的内存。如果两个进程希望通过共享内存的方式通信呢?可以通过mmap()
系统调用实现。
Go实例
Go也实现了mmap()
函数支持共享内存,不过也是通过cgo来调用C实现的系统调用函数。Cgo是什么?它是Go调用C语言模块的功能,当然这种调用很可能是平台相关的,也就是无法保证在Windows也能正确运行。
具体代码参见Golang对共享内存的操作,有时间我们也愿意写一个更简单易懂的例子。