读者写者模型

本文详细介绍了读者写者模型,包括其基本概念、读者与写者之间的关系、互斥与同步的理解,并通过对比自旋锁与互斥锁解释了读写锁的工作原理。此外,还探讨了读者写者模型与生产者消费者模型的区别,并提供了公平情况下的读者写者模型代码示例。
摘要由CSDN通过智能技术生成

一、读者写者模型

    读者:只读数据区中的数据
    写者:只往数据区中写数据
要求:
   (1)允许多个读者同时执行读操作;
   (2)不允许读者、写者同时操作;
   (3)不允许多个写者同时操作。

     我们知道在一些程序中存在读者写者问题,就是对某些资源的访问会存在两种可能的情况:一种就是写操作,写操作是可以独占资源的,也就是具有排他性;另一种情况就是读操作,在读操作中可以有多个资源并发的去访问某种资源,它的访问方式是共享的。这种模型是从对文件的读写操作中总结出的一种模型。

  1.在读者和写者的这种模型中,存在3种关系,他们是:

    1).读者和读者之间,读者与读者之间是可以并发的访问某种资源的,所以他们之间是没有关系的(共享关系)。

    2).读者和写者之间,我们知道对一个文件来说是不可以既读又写的,可能会导致数据的二义性问题。读者和写着之间是互斥和同步的关系。

    3).写着和写着之间,存在互斥的关系。

  2.在上面描述读者写者关系中提到了互斥和同步,那仫为什么要保证互斥和同步的关系呢?

    互斥:指某一种资源某一时刻只能允许一个访问者对它进行访问,具有唯一性和排他性。但是资源的互斥是无法保证访问者对资源的访问顺序的,即如果有多个访问者访问该资源时,访问是无顺序的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值