一. 定义
进程间的通信(IPC, Inter-process communication)是指在不同进程间传播和交换信息。
二. 集中通信方式的总结
常见的进程间的通信方式有7种:
- 管道(pipe),又称无名管道
- 命名管道(FIFO)
- 消息队列(MessageQueue)
- 信号量(Semaphor)
- 共享内存(SharedMemory)
- 套接字Socket
- 信号(signal)
管道
管道可以分为两类:匿名管道和命名管道。
命令“|”其实就是匿名管道,表示把一个进程的输出传输到另一个进程,如:
echo "Happyjava" | awk -F 'j' '{print $2}'
# 输出 ava
另外,可以通过mkfifo 命令 创建一个命名管道,如:
mkfifo pipe_me
一个进程往管道输入数据,则会自阻塞并等待 别的进程从管道读取数据: