参考地址:
名称 | 说明 | 范围 | 用途 |
---|---|---|---|
文件 | 在典型的 UNIX 文件中读写数据。任意数量的进程都可以互操作。 | 本地 | 共享大数据集 |
管道 | 使用专用的文件描述符在两个进程之间传输数据。通信只在父进程和子进程之间进行。 | 本地 | 简单的数据共享,比如生产者和消费者 |
命名管道 | 通过专用的文件描述符在进程之间交换数据。通信可以在同一主机上的任意两个对等进程之间进行。 | 本地 | 生产者和消费者或命令-控制,比如 MySQL 和它的命令行查询工具 |
信号 | 通过中断通知应用程序某一情况。 | 本地 | 无法在信号中传输数据,所以信号主要用于进程管理 |
共享内存 | 通过在同一内存段中读写数据共享信息。 | 本地 | 任何类型的协作,尤其适合需要安全性的情况 |
套接字 | 完成特殊的设置过程之后,使用一般的输入/输出操作传输数据。 | 本地或远程 | FTP、ssh 和 Apache Web Server 等网络服务 |
正如前面提到的,每种技术满足不同的需求。假设多个进程之间的协作的复杂性大体相当,每种方法的优点和缺点如下:
完