主要有以下几种类型:
①普通管道(PIPE): 通常有两种限制,一是单工,即只能单向传输;二是血缘,即常用于父子进程间(或有血缘关系的进程间)。
②流管道(s_pipe): 去除了上述的第一种限制,实现了双向传输。
③命名管道(name_pipe): 去除了上述的第二种限制,实现了无血缘关系的不同进程间通信。
显然,要求是对于不同的服务器之间的通信,是要要求全双工形式的,而管道只能是半双工,虽然可以双向,但是同一时间只能有一个方向传输。
如图:
关于管道(Pipe)通信:
1.进程对管道进行读操作和写操作都可能被阻塞(因为管道为空,读操作会被堵塞;管道满了,写会被阻塞)
2.可以有多个线程对其读,也可以有多个进程写,只不过不能同时写。
3.匿名管道只能单向,命名管道可以双向
4.管道是内存中,不受磁盘容量大小的限制