线程最后部分(网络基础1)

环形队列的生产者和消费者访问不同下标,除了满或者空,也因为这个原因,这个模型里,生产者和消费者可以同时执行。

读者写者问题

常见解决读多写少,但是不仅限于此
读者写者模型:有一批数据,读的人特别多,修改的人特别少。
读者写者的321
1:有多个读线程和若干个写线程,在一个内存区域负责数据操控。
2:读者、写者
3:读者和读者:共享 ;写者和写者:互斥 ;读者和写者:互斥且同步

和消费者模型相比最重大的区别
在这里插入图片描述

在这里插入图片描述
特别的地方:在加锁这里
如果你是读者,就调用读加锁
如果你写者,就调用写加锁

读优先:可能会导致写者饥饿问题,读者优先高
互斥锁的同步:就是为了协同,解决饥饿问题。提高效率。
写优先:先做完当前的事,但下一个写优先
公平占有锁:不管优先级,谁占到归谁
在这里插入图片描述
读优先的伪代码如上
读锁是为了保证r计数器的原子性
然后读的时候把写给锁了 很坏

自旋锁

因为占有临界资源的线程,在临界资源呆的时间特别短,为了效率,让当前线程不要挂起,让其处于自旋状态,不断去检测锁的状态。
在这里插入图片描述
自旋锁的底层伪代码实现:不成功就go到头部继续判断,不用挂起

自旋锁自旋的时候,用户区的感觉也像是被挂起了一样,被卡住了。

trylock相关
非trylock函数,申请失败就被挂起,一直等
没有携带timeout,失败就立马返回
携带timeout,时间到了出错返回

在这里插入图片描述
计算机体系内到处都是协议,包括硬件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值