七种进程间通信方式

七种进程间通信方式,哪七种呢?咱么一起数一数:

 一.无名管道( pipe )

二.有名管道( fifo )

三.共享内存 ( shared memory )

四.信号( sinal )

五.消息队列 ( message queue )

六.信号量   ( semophore )

七.套接字   ( socket )

 

各自都有哪些特点呢?

一、pipe特点:

1)只能用于具有亲缘关系的进程之间的通信

2)半双工的通信模式,具有固定的读端和写端,fd[0]固定用于读管道,而fd[1]固定用于写管道3

3)管道可以看成是一种特殊的文件,对于它的读写可以使用文件IO如read、write函数。

4)管道是一种特殊的文件,存在于内存中,它是随进程持续性的(进程在它在,进程亡它亡)。

 

二、fifo特点:

fifo相对于pipe的特殊性:创建fifo后需要单独打开,fifo单独以O_RDONLY货O_WRONLY模式打开时,默认会阻塞直到另一个进程以相反的方式打开,如果以O_RDWR方式打开,则结果是未定义的。

 

三、共享内存特点

因为所有进程共享同一块内存,共享内存在各种进程间通信方式中具有最高的效率。

 

四、信号特点

唯一的异步通信方式

 

五、消息队列

消息队列是消息的链表,具有特定的格式,并由消息队列标识符标识。

 

六、信号量

同步机制

 

七、套接字

网络间通信

 

以上七种进程间通信的完整代码,皆可以在我的资源列表中获取下载:

资源列表:http://download.csdn.net/user/qiulanzhu



你可能感兴趣的:(通信,socket)