进程间通信

进程间通信方式

一、管道(pipe):

转自:http://blog.chinaunix.net/uid-26833883-id-3227144.html

1.无名管道:

1.管道是基于文件描述符进行通信,当建立一个管道时,会创建两个文件米哦舒服fd[0],fd[1],fd[0]表示读管道,fd[1]表示写管道;

2.内存保存在内存中。

3.半双工的,数据只能向一个方向流动,需要双方通信时,需要建立起两个管道;

4.管道只能用于具有亲缘关系的进程之间通信,如父子进程,兄弟进程,一般会接合fock函数来进行进程间通信。

2.有名管道:

1.相对于无名管道,有名管道可以使得没有亲缘关系的进程可以通信。

2.原理是将管道与文件名做绑定,以文件的形式存在于文件系统中,内容存在内存中。

3.使用时,需要先open然后再操作。

 

二、共享内存:

1.可以实现非亲缘关系的进程间通行。

2.linux的共享内存没有提供同步机制,需要使用其它手段进行,如信号量。

二、共享内存:

 

三、信号:

 

 

四、消息队列:

 

 

五、socket:

 

五、信号量:

 

posted @ 2016-09-18 15:57  wrencai  阅读(133)  评论(0编辑  收藏  举报