IPC(Inter-Process Communication)进程间通信。
在没有学习进程通信前总感觉两个程序之间需要交换数据,一般都是基于文件,比如一个进程向文本文件里面写数据,而另外一个进程读取数据,当然这样两个进程的读写就需要互斥,然而这样的读写文件需要不断的读写磁盘,属实效率不高,那么今天就学习一波实际的进程通信 :
1.管道pipe
分为有名管道和无名管道
-
无名管道只能用于父子进程之间,单向通信的工作方式,半双工。
-
有名管道则无亲属关系的进程之间,提供给任意关系的进程使用。
2. 信号signal
机制比较复杂,比如用于通知接收进程某个事件已经发生.
3.消息队列
消息队列,存放在内核中,一种异步通信的典型。
4.共享内存Shared Memory
该方式是直接读写内存,不需要额外的格式操作等,算是进程通信中最快的方式。
其类似于共享资源多进程操作,需要同步,比较常用的就是与信号量结合使用。
5.套接字socket
socket进程通信算是操作系统均有的一种IPC方式,所以是非常常见的。