共享内存应用实例

这篇博客展示了如何在没有亲缘关系的进程间通过共享内存进行数据通信,利用信号量确保读写同步。发送端在信号量值为0时写入数据,然后设置信号量为1,允许读取;接收端在信号量为1时读取数据并阻塞写入端,读取后将信号量设回0。文章提供了详细的代码示例。
摘要由CSDN通过智能技术生成

1,功能描述

    此程序实现没有亲缘关系的进程间通过共享内存进行数据通信,同时,使用信号量来保证两进程间的读写同步:及发送方在发送数据时,接收方不能接收数据,反之亦然。

2, 基本思路

    首先设置信号量的初始值为0,表示没有写入任何数据,不可以读;

    发送端在信号量的值为0的时候写入数据,写入完成后,设置信号量为1,表示可以读数据,不可以写数据

    接收端在信号量为1时读出数据,并阻塞写入端,读出完成后,设置信号量的值为0,表示读出完成,可以写数据。

写数据段源码:

读数据端源码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值