中间件核心技术与实战
丁威
中通快递资深架构师,RocketMQ 社区首席布道师
1683 人已学习
立即订阅
登录后,你可以任选4讲全文学习
推荐试读
换一换
开篇词|为什么中间件对分布式架构体系来说这么重要?
时长 11:37
免费
01|中间件生态(上):有哪些类型的中间件?
时长 20:44
02|中间件生态(下):同类型的中间件如何进行选型?
时长 17:55
课程目录
已更新 7 讲/共 27 讲
开篇词 (1讲)
开篇词|为什么中间件对分布式架构体系来说这么重要?
时长 11:37
全局认知篇 (2讲)
01|中间件生态(上):有哪些类型的中间件?
时长 20:44
02|中间件生态(下):同类型的中间件如何进行选型?
时长 17:55
基础篇 (4讲)
03 | 数组与链表:存储设计的基石有哪些?
时长 23:58
04 | 红黑树:图解红黑树的构造过程与应用场景
时长 24:26
05 | 多线程:多线程编程有哪些常见的设计模式?
时长 21:43
06 | 锁:如何理解锁的同步阻塞队列与条件队列?
时长 29:35
中间件核心技术与实战
15
15
1.0x
00:00/00:00
登录|注册
开通超级会员可免费学习本课程,还可解锁海量内容免费学特权。

06 | 锁:如何理解锁的同步阻塞队列与条件队列?

你好,我是丁威。
这节课,我们重点介绍并发编程中的基石:锁。

锁的基本存储结构

我们先通过一个简单的场景来感受一下锁的使用场景。一家三口在一起生活,家里只有一个卫生间,大家早上起床之后都要去厕所。这时候,一个人在卫生间,其他人就必须排队等待。
这个场景用 IT 术语可以表述为下面两点。
洗手间作为一个资源在同一时间只能被一个人使用,它具备排他性。
一个人用完洗手间(资源)之后会归还锁,然后排队者重新开始竞争洗手间的使用权。
我们可以对这个场景进行建模。
资源:更准确地说是公共资源或共享资源需要被不同的操作者使用,但它不能同时被使用。
资源使用者:共享资源的使用者。
锁:用来保护资源的访问权。锁对象的归属权为共享资源,但当资源使用者向资源申请操作时,可以将锁授予资源使用者。这时候,资源使用者叫做锁的占有者,在此期间它有权操作资源。操作者不再需要操作资源之后,主动将锁归还。
排队队列:我们可以更专业地称之为阻塞队列,它可以存储需要访问资源但还没获取锁的资源使用者,其归属权通常为锁对象。
这里我之所以强调归属权,主要是因为它可以帮助我们理解锁的基本结构和资源的关系。
那锁的结构是什么呢?我们通过上节课的课后题来理解这个问题。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
划线
笔记
复制
开篇词|为什么中间件对分布式架构体系来说这么重要?
免费
01|中间件生态(上):有哪些类型的中间件?
02|中间件生态(下):同类型的中间件如何进行选型?
03 | 数组与链表:存储设计的基石有哪些?
05 | 多线程:多线程编程有哪些常见的设计模式?
06 | 锁:如何理解锁的同步阻塞队列与条件队列?
开通超级会员免费畅看本课程
每天仅¥1.3
该文章仅可免费阅读部分内容,如需阅读完整文章,请开通超级会员或单独购买本课程。
登录 后留言

精选留言(1)

  • 小豹哥
    这也太仔细认真了吧,这细节抠的! 给老师点个大大的赞
    2022-06-24
收起评论
1
返回
顶部