synchronized-底层实现

mac2022-06-30  20

jdk-早期- 重量級- os

锁升级:

偏向锁:

自旋锁:  cpu一直调度,-执行时间短,线程数少用自旋(它会旋10次,如果还得不到这把锁,升级为系统锁(让操作系统分配资源))

os: cpu不调度,线程处于就绪状态  线程数量多,执行时间长 用系统锁

 

 

问个问题哈, 如果是自旋锁,除了当前线程 其他线程,一直占用cpu 就不属于就绪状态了,属于运行状态嘛,那这样其他线程 属不属于堵塞?还是说其它线程就属于运行状态  只是无法实现 程序?(自旋锁默认 其他线程默认十次访问锁,如果得不到升级系统锁)

我得到的答案:那就是  用了自旋锁  其它线程 是运行的被cpu调度着,处于运行状态, 如果在没有锁升级之前

 

最新回复(0)