了解进程间通信(IPC,Internet process connect),我们要搞明白进程间为什么要通信,会遇到哪几种情况,针对这些情况我们分别怎么来解决。下面我们来说下进程间通信的目的,然后针对这些问题进行解决。
2,资源共享:多个进程共享一段资源。
3,通知事件:一个进程向其它进程发送消息,通知某种事件(是停止,是终止)。
4,进程控制:一个进程完全控制另一个进程,例如编译器的调试功能。
通常我们就是为了解决这几个进程间问题,解决这些问题有哪些办法呢?
管道:无名管道(pipe) 有名管道(fifo)
管道只能半双工通信,即某一时刻只能单向传输。要实现父子进程双方互动通信,需要定义两个管道。管道有固定大小的缓冲区。管道又分为有名管道和无名管道(下篇文章介绍)。
信号量:用于管理对资源的访问。
共享内存:用于在程序之间高效的共享数据 。
消息队列:在程序之间传递数据的一种简单方法。
套接字(socket)
用于不同机器间的进程通信,跨网络通信。之后会分多次详细介绍这三种通信。