皮蛋 (@aee) 在 小课堂:在 Linux 上,进程之间如何通信? 中发帖
下图显示了进程间通信的 5 种方式。
[IMG_20250131_121250]
01 管道(Pipe)管道是单向字节流,用于连接一个进程的标准输出(stdout)和另一个进程的标准输入(stdin)。
02 消息队列(Message Queue)消息队列允许一个或多个进程写入消息,并由一个或多个读取进程读取。
03 信号(Signal)信号是 Unix 系统使用的最古老的进程间通信方法之一。信号可能由键盘中断或错误条件(如进程试图访问其虚拟内存中不存在的位置)产生。内核可以生成一组定义好的信号,系统中的其他进程也可以生成这些信号。例如,Ctrl+C 向进程 A 发送 SIGINT 信号。
04 信号量(Semaphore)信号量是内存中的一个位置,其值可由多个进程测试和设置。根据测试和设置操作的结果,一个进程可能需要休眠,直到另一个进程改变了该信号量的值。
05 共享内存...