进程间如何进行通信?

进程间如何进行通信?

本文转自 公众号 ByteByteGo,如有侵权,请联系,立即删除

在 Linux 上,进程之间如何通信?

下图显示了进程间通信的 5 种方式。

img

01 管道(Pipe)

管道是单向字节流,用于连接一个进程的标准输出(stdout)和另一个进程的标准输入(stdin)。

02 消息队列(Message Queue)

消息队列允许一个或多个进程写入消息,并由一个或多个读取进程读取。

03 信号(Signal)

信号是 Unix 系统使用的最古老的进程间通信方法之一。信号可能由键盘中断或错误条件(如进程试图访问其虚拟内存中不存在的位置)产生。内核可以生成一组定义好的信号,系统中的其他进程也可以生成这些信号。例如,Ctrl+C 向进程 A 发送 SIGINT 信号。

04 信号量(Semaphore)

信号量是内存中的一个位置,其值可由多个进程测试和设置。根据测试和设置操作的结果,一个进程可能需要休眠,直到另一个进程改变了该信号量的值。

05 共享内存(Shared Memeory)

共享内存允许一个或多个进程通过其所有虚拟地址空间中的内存进行通信。当进程不再希望共享虚拟内存时,它们就会从中分离。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xwhking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值