7.读者——写者问题

读者——写者问题

一个数据文件或记录可被多个进程共享。其中,有些进程要求读;而另一些进程要求写或修改。只要求读的进程称为“Reader进程”,其他进程称为“Writer进程”。允许多个Reader进程同时读一个共享对象,不允许一个Writer进程和其他Reader进程或Writer进程同时访问共享对象。

所谓读者——写者问题是指保证一个Writer进程必须与其他进程互斥地访问共享对象的同步问题。

信号量设置

  • 为解决一个Writer进程和其他Reader进程互斥,设互斥信号量Wmutex
  • 设置整型变量Readercount表示正在读的进程数目
  • Readercount是一个可被多个Reader进程访问的临界资源,为它设置互斥信号量Rmutex。
  • 仅当Readercount = 0表示无Reader进程在读时,Reader进程才需要执行p操作。若p操作成功,Reader进程便可去读。

使Readercount+1,原因是:Readercount>0,说明已有Reader进程在安全的读数据

转载于:https://my.oschina.net/u/1771419/blog/3008225

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值