管道
- 管道是一种半双工通信机制
- 管道的数据都是通过内存空间缓存的
1、实现进程间通讯的原理:就像现实中管道的两端一样,由一个进程进行写操作,其余的进程进行读操作。如果管道为空,那么read 会阻塞;如果管道为满则 write 会阻塞
2、分类:管道可以分为有名管道和无名管道两类。
3、区别:
(1)有名管道:可以在任意进程之间进行通讯,通讯是双向的,任意可读可写,但同一时间只能一端读,一端写。
(2) 无名管道:只能在具有亲缘关系的进程(父子进程)间通讯,网络间通讯,并且是单向的,只能一端读另一端写。
4、管道的特点:
- 无论有名还是无名,写入管道的数据都在内存中
- 通讯数据遵循先进先出的原则,并且都是半双工通讯的(通信方式有单工、半双工、全双工)
- 有名和无名管道的区别:有名可以在任意进程间使用,而无名主要在父子间管道的实现
通信方式 :
全双工:A可到B,B也可到A,如网络
半双工