Linux匿名管道和命名管道以及共享内存
1、本质:
匿名管道本质上是内核中的一块管冲区,而命名管道本质上是一块标识符,用于让多个进程能够访问同一个缓冲区
2、对象:
匿名管道可以只能用于有亲缘关系的进程之间的通信,而命名管道可以用于任意进程之间的通信
3、管道是半双工通信,是可选择方向的单向通信
4、命名管道是当被以读的方式打开时,会发生阻塞,只有在被当以读的方式再打开时,才会正常运行,反之亦然
5、前面已经说过,命名管道的本质是一块文件标识符,用于让多个进程能够找到同一块缓冲区进行通信,所以删除命名管道并不能影响已经打开这个缓冲区的进程的 读写操作
6、共享内存是让不同进程的地址空间映射到同一块物理内存,从而实现进程间通信,删除共享内存,只是让这块共享内存拒绝后续映射,但只有其引用计数变为零即没有进程的地址空间再映射这块物理空间时,这块共享内存才会真正被删除