当前位置: 技术问答>linux和unix
ipc里面常用的"管道"和"消息队列"本质上有什么不同?
来源: 互联网 发布时间:2016-12-31
本文导语: 我感觉用法和行为都是一样的...... | 差别比较多,消息队列分type的,是报文形式的,管道是字节流的,消息队列可以往里写也可以往里读,管道是一端写一端读,半双工的。 管道只能用在父...
我感觉用法和行为都是一样的......
|
差别比较多,消息队列分type的,是报文形式的,管道是字节流的,消息队列可以往里写也可以往里读,管道是一端写一端读,半双工的。
管道只能用在父子进程,FIFO可以用在无亲缘关系进程,消息队列也是无亲缘关系的。
消息队列的标示符不是描述符,不能用于select等。
管道是UNIX自古以来有的东西,而POSIX和SYSTEM V的IPC分别使用路径名和SYSTEM V全局标示符代表IPC,区别很多,注意使用范围。
万能的是UNIX的内存共享,互斥量,信号量,管道,FIFO,文件锁。
图方便的话可以直接使用POSIX和SYSTEM V的信号量,消息队列,共享内存。
管道只能用在父子进程,FIFO可以用在无亲缘关系进程,消息队列也是无亲缘关系的。
消息队列的标示符不是描述符,不能用于select等。
管道是UNIX自古以来有的东西,而POSIX和SYSTEM V的IPC分别使用路径名和SYSTEM V全局标示符代表IPC,区别很多,注意使用范围。
万能的是UNIX的内存共享,互斥量,信号量,管道,FIFO,文件锁。
图方便的话可以直接使用POSIX和SYSTEM V的信号量,消息队列,共享内存。
|
注意顺序性
|
http://www.cnblogs.com/qqivoryqq/archive/2009/09/24/1573125.html