关于线程饥饿与线程状态的疑问

来源:5-11 先来后到

ych_1997

2020-01-17

线程A、B、C依次等待 锁X,并且三个线程 都进入blocking状态。
有一个时间节点,X 被释放,running 状态的线程D能够直接获得 X,A、B、C 线程此时已经开始饥饿了。
问题:D 获取X 锁的整个过程,A、B、C 线程是主动放弃抢锁的动作,还是三个线程和D同时抢锁,但是抢不过D。

写回答

1回答

悟空

2020-01-17

ABC不是和D同时抢锁,唤醒是按顺序的,A先,不是ABC同时唤醒。A在被唤醒之前D就抢到了。

0
9
悟空
回复
qq_厭迣o_0
不用关注“反插队”这个概念,理解插队的整体逻辑就好:唤醒的线程和外面刚来拿锁的线程,一起竞争锁
2020-11-19
共9条回复

深度解密Java并发工具,精通JUC,成为并发多面手

JUC全方位讲解,构建并发工具类知识体系

1599 学习 · 573 问题

查看课程