在 syn queue 直接后继唤醒

来源:6-1 J.U.C之AQS-介绍

慕粉182903712

2018-09-14

在 syn queue 是按照直接后继唤醒 那可以说 多线程在抢锁 的时候是根据 syn queue 里的队列顺序 依次唤醒的嘛

写回答

1回答

Jimin

2018-09-14

你好,这个sync queue 维护的是尝试获取锁的队列。AQS通过维护这个CLH队列来管理锁。线程首先尝试获取锁,如果失败,就会将当前线程及等待状态等信息包成一个Node节点加入到之前的同步队列Sync queue,接着不断的循环尝试获取锁。但是,这个队列限制了只有当前节点head的直接后继节点才会尝试,head节点一般为获取锁的一个线程。线程获取锁如果失败了,会阻塞自己,直到被唤醒。

0
0

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程