1.进程与线程的区别
进程和线程都是cpu执行时间段的描述,只是时间段的大小不一样。一个进程是由一个或者多个线程组成的,有一个主线程。
2.进程间的通信方式
通信方式:管道 系统ipc socket
2.1.管道
普通管道:半双工模式,单向传输,只适用于父子进程之间的通信。
流管道:全双工,双向传送,只适用父子进程之间的通信。
命名管道:半双工,单向传输,使用于各进程之间。
2.2.系统ipc
管道:相当于普通管道。
信号量:相当于计数器,对临界资源上的同步锁。
信号:用于通知接收进程某事件已经发生。(比较复杂)
共享存储(内存):通过映射,可接受多个进程同时访问。一个进程创建 一个映射内存,其他进程通过映射直接访问内存。是最快的一种ipc通信方式
2.3.socket
不同于其他通信方式, 它可用于不同进程或者其进程之间的通信。
3.管道通信于系统ipc通信的区别
管道通信: 优势:支持所有的unix,最后一个进程访问完管道,管道将被完全删除。
劣势:只用于父子进程之间的通信。
系统ipc:优势:功能强大,可用于无关进程之间的通信。
劣势:关键字key_t属于内存标识,占用的是内核资源