读者写者模型

读者写者模型是一种并发控制模型,其中读操作可以并发进行,而写操作具有排他性。与生产者消费者模型不同,读者与读者之间共享资源,但与写者间同步且互斥。读写锁允许多个读者同时读取,但不允许读者和写者同时访问,确保数据一致性。读写锁接口包括初始化、加读锁、加写锁和解锁操作。在实际应用中,可以通过读写锁实现多线程环境下高效的数据访问控制。

前面我们已经介绍过生产者消费者模型,那么,什么是读者写者模型,它和我们介绍的生产者消费者模型又有什么不同?

一、读者写者模型

1、模型简介

在进程中,对某些资源的访问会存在两种可能的情况:
一种是写操作,它是可以独占资源的,即具有排他性。
另一种是读操作,可以有多个资源并发地去访问某种资源,它的访问方式是共享的。(一般由于写端操作次数少,读端操作次数多,因此写端的优先级较高)。这种模型是从对文件的读写操作中总结出的一种模型。

三种关系:
(1)写者与写者之间:互斥关系
(2)读者与读者之间:既不同步也不互斥,没有关系
(3)读者与写者 :同步且互斥
我们分析一下读者与写者关系,我们试想一下,对一个文件的操作不可以是既读又写的,可能会导致二义性问题。因此读者和写者之间是同步与互斥关系。
同步关系(读者优先或者写者优先)
互斥关系(读者读完了写者才能写,写者写完了读者才能读,这样就保证了数据的有效性)。
两种角色:读者和写者
一个场所:指一个读写场所。

2、与生产者消费者模型的区别

根据上篇文章生产者与消费者模型,我们对比可得:
生产者与消费者模型里,只存在互斥与同步,而在读者与写者模型里出现了读者与读者之间的共享关系
最大的区别就是生产者与消费者模型是会将临界区里的数据取走,而读者与写者模型只是将数据只读不取

二、读写锁

1、读写锁的行为

下面是读写锁的行为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值