进程间通信:
简单的进程间通信:信号、文件、环境变量、命令行参数
命令行、环境变量只能单向传递,信息过于简单,文件时效性差
传统的进程间通信:管道文件
是UNIX系统中最古老的进程间通信方式,早期是半双工,现在可以是全双工,是一种特殊的文件,数据会在文件中流动,管道文件无内容时会阻塞读取
XSI进程间通信: 共享内存、消息队列、信号量
共享内存:由两个或多个进程之间共享一块由内核维护的内存
优点:是最快的一种IPC机制
缺点:数据的访问要考虑同步的问题,一般借助信号解决
消息队列:由内核管理维护的数据链表,通过消息类型收发数
信号量:由内核维护的一个“全局变量”,用于记录可用资源的数量,以此限制进程对共享资源的访问
网络进程间通信: 套接字Socket
可以让不同计算机的进程进行网络通信
线程间通信方式:等同于进程间通信