本文是AQS与CLH相关论文学习系列第二篇。 系列其他文章链接如下
本文在第一篇 AQS与CLH相关论文学习系列(一)- 排队式自旋锁思想启蒙的基础上进一步学习首个提出的基于链表结构排队式自旋锁: MCS 锁
参考文章
Ticket 锁
在 Anderson 90 年发布的论文发布之后, Mellor-Crummey 和 Scott 紧随其后在 91 年发布的论文中【参考文章2】中提到了另一种有趣而简单的锁, 也是排队的思想。
类似饭店排队叫号, 每一个试图进入饭店的人, 首先获取一个属于自己的编号, 当有位置空闲出来后, 饭店当前可服务的编号会增加, 等到你的编号和叫到的编号相等时, 代表你可以接受服务, 也就是获取了锁 。
伪代码如下:
- 小提示
- 伪代码方法声明
method( varName : type)
, 等价于于 java 语法的method(Class var)
^someType
代表someType
类型的指针something^
代表指针som
- 伪代码方法声明