java并发Java学习笔记

Synchronized下的三种锁:偏向锁 轻量锁 重量锁

2017-08-01  本文已影响2092人  厌恶狡诈心机

http://www.infoq.com/cn/articles/java-se-16-synchronized

读后解读Synchronized下的三种锁:偏向锁  轻量锁  重量锁

锁升级场景:蜀国四兄弟争骑单车007号


1、 # 获取偏向锁

张飞要骑

                有人吗

                                没人

                                        写上张飞的名字

                                                    成功获取偏向锁                     

                                                                  骑走

1.1、# 拥有偏向锁

张飞要骑车

                  有我的名字

                                骑走

2、#争抢进入轻量级锁

刘备要骑

            看到张飞的名字在,问张飞在吗

                            张飞:在

                                        尝试写上刘备的名字失败

                                                  张飞我在等你

                                                                刘备骑完后把他的名字抹去进入轻量级锁

2.1、#争抢获取偏向锁

                                      尝试写上刘备名字成功

                                                  获取偏向锁

                                                            骑走

3、#争抢轻量级锁

诸葛亮要骑

        拍照单车挂身上(复制对象头锁信息到线程栈内存)

                  尝试在单车箭头指向自己照片(对象头锁信息指针指向线程栈内存)

                            成功

                                    成功获取轻量级锁

                                              骑走

                                                        还车成功

3.1、#已经争抢成了重量级锁

                                                        还车失败,好了好了你们快抢(关羽)

4、#争抢轻量级锁

关羽要骑车

          拍照单车

                  尝试在单车箭头指向自己照片

                            失败

                                  再试多次(自旋锁)

                                          艹有完没完了,设置重量级锁

                                                      蹲等

                                                              诸葛亮说骑完了,抢

上一篇 下一篇

猜你喜欢

热点阅读