进程与线程(四) linux进程间通信的方式总结

1概述:         

上文说到,每个进程都有自己的地址空间,包括什么呢?向下生长得栈,向上生长的堆,代码段,数据段等,这些都是进程私有的,如何实现通信的呢?通信需要媒介,这个媒介很重要。

   对于研发人员来说,进程不是孤立的,而是相互关联的一个整体,有一些进程需要团结协作来完成任务,所以首先他们就要通信,那通信的方式有哪些呢?首先我们粗略的知道以下几种:

1、管道:pipe 和named pipe.什么是管道?简单的说就是把一个进程的输出当做另一个进程的输入,后面再说。pipe:有亲缘关系的才能通信,named pipe: 没有亲缘关系的也能通信(通信的格式是字节流,无格式)

2.信号:有一本说上的说的好,那就是组成原理中的中断,信号是中断的一种封装(它承载的信息量很少)。

3。消息队列: 简单而言,把消息加入队列和取走信息,但是权限问题很重。

4信号量: OS上的PV操作,看看

5.socket :网络上不同主机进程通信,java网络编程重点。

以下就有5篇文章分别进行详略得当的描述,重点是信号量和socket。

ref:

http://www.ibm.com/developerworks/cn/linux/l-ipc/#toggle

原文地址:https://www.cnblogs.com/hansongjiang/p/3824126.html