PHP进程间通信中共享内存的实现原理和应用场景有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1900个文字,预计阅读时间需要8分钟。
目录+常见进程通信方式+system V 共享内存+PHP使用共享内存+共享内存基本函数使用+父子进程通信+配合信号量使用+非血缘关系进程共享内存通信+共享内存的特性+常见进程通信方式+system
目录
- 常见进程通信方式
- system V共享内存
- php使用共享内存
- 共享内存基本函数使用
- 父子进程通信
- 配合信号量使用
- 非血缘关系进程共享内存通信
- 共享内存的特性
常见进程通信方式
system V共享内存
现代操作系统,对于内存管理,采用的是虚拟内存技术,也就是每个进程都有自己独立的虚拟内存空间,不同进程的虚拟内存映射到不同的物理内存中。所以,即使进程 A 和 进程 B 的虚拟地址是一样的,其实访问的是不同的物理内存地址,对于数据的增删查改互不影响。
共享内存的机制,就是拿出一块虚拟地址空间来,映射到相同的物理内存中。这样这个进程写入的东西,另外一个进程马上就能看到了,不需要经过数次的拷贝(比如从输入缓冲区中拷贝到文件中、再拷贝到输出缓冲区中等),大大提高了进程间通信的速度。
在所有进程间通信的方式中共享内存的效率是最高的。
共享内存操作默认不阻塞,如果多个进程同时读写共享内存,可能出现数据混乱,共享内存需要借助其他机制来保证进程间的数据同步,比如:上期讲信号量,共享内存内部没有提供这种同步机制。
本文共计1900个文字,预计阅读时间需要8分钟。
目录+常见进程通信方式+system V 共享内存+PHP使用共享内存+共享内存基本函数使用+父子进程通信+配合信号量使用+非血缘关系进程共享内存通信+共享内存的特性+常见进程通信方式+system
目录
- 常见进程通信方式
- system V共享内存
- php使用共享内存
- 共享内存基本函数使用
- 父子进程通信
- 配合信号量使用
- 非血缘关系进程共享内存通信
- 共享内存的特性
常见进程通信方式
system V共享内存
现代操作系统,对于内存管理,采用的是虚拟内存技术,也就是每个进程都有自己独立的虚拟内存空间,不同进程的虚拟内存映射到不同的物理内存中。所以,即使进程 A 和 进程 B 的虚拟地址是一样的,其实访问的是不同的物理内存地址,对于数据的增删查改互不影响。
共享内存的机制,就是拿出一块虚拟地址空间来,映射到相同的物理内存中。这样这个进程写入的东西,另外一个进程马上就能看到了,不需要经过数次的拷贝(比如从输入缓冲区中拷贝到文件中、再拷贝到输出缓冲区中等),大大提高了进程间通信的速度。
在所有进程间通信的方式中共享内存的效率是最高的。
共享内存操作默认不阻塞,如果多个进程同时读写共享内存,可能出现数据混乱,共享内存需要借助其他机制来保证进程间的数据同步,比如:上期讲信号量,共享内存内部没有提供这种同步机制。

