用读写锁实现--读者写者模型

读者写者模型

读者写者模型是操作系统中的一种同步与互斥机制,与生产者消费者模型类似,但不同的是在生产者消费者模型中,多个读者间没有关系,而且消费者会让临界资源的个数减少,而读者不会改变临界资源的个数
这里写图片描述

读者写者模型应该具备的条件

1.写者是排他性的,即有多个写者的情况下,只有一个写者占有仓库。
2.读者可以一起读,采取并行机制。
3.读者和写者是同步且互斥的,如果读者占有了仓库,则写者不能占有,若写者正在写,则读者不能访问仓库。

读者写者模型的策略

1.读者优先
读者先来读取数据,此时写者处于阻塞状态,当读者读取完数据后且没有了读者时写者才能访问仓库。
2.写者优先
写者先写入数据,此时读者处于阻塞状态,当写者写完数据后且没有写者时读者才能访问仓库。
3.公平情况
写者和读者访问仓库的优先级相等,谁先进入优先级队列谁先访问。

自旋锁与挂起等待锁

1.自旋锁
线程申请资源失败时,它会一直在当前检测锁位置处轮寻锁的状态,来查看资源是否能被申请。不断检测的过程叫做自旋,如读写锁。
2.挂起等待锁
线程申请资源失败时,操作系统将其挂起等待,如互斥锁和二元信号量。

读写锁

什么是读写锁?
读写锁是一种特殊的自旋锁,它把对

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值