目录:
本质
内核中的缓冲区( 管道就是缓冲区,用来连接的是文件描述符 )
管道的本质是内核中的缓冲区,命名管道文件是缓冲区的标识
分类
1.匿名管道
只能用于亲缘关系的进程间通信:----详细解释连接
2.命名管道
可用于同一个主机任意进程间通信:----详细解释连接
特性
1.半双工通信
可以选择方向的单向通信
2.提供字节流传输服务
可靠的.有序的.基于连接的一种流式传输
基于连接的:
----1.所有的读端关闭,write异常退出
----2.所有的写端关闭,read则读完数据后不再阻塞,返回0
3.自带同步与互斥
互斥:
通过控制对一临界对象(公共资源,也就是都可以访问的内存)的唯一访问,来保证访问安全
互斥的体现:
对管道进行写操作数据大小不超过PIPE_BUF,moren 4096字节大小,则保证操作原子性
同步:
通过判断条件让进程对临界资源进行有秩序的访问,保证访问输出结果的合理性
同步的体现:
管道中没有数据read则会阻塞,管道中数据满了write则会阻塞
4.管道生命周期随进程
如果所有打开管道的进程都已经退出,则管道就会被释放!
这一节主要是对于匿名管道和命名管道知识的一个梳理,让我们更好的理解管道的相关知识以及更好的运用.