多线程Syschronized

场景(线程不安全)
需求(解决线程安全问题)
解决方案(Syschronized)
应用(Syschronized的几种使用:
实例锁(等同于同步代码块的this),
静态方法锁(等同同步代码块的object.class),
代码块

原理:

偏向锁(cas判断对象头是否为该线程)->轻量级锁(自旋,若自旋n次后还是失败,或自适应自旋后失败,升级锁)->重量级锁(mutex)

重量级锁执行流程

在这里插入图片描述
对象头存储信息:
在这里插入图片描述

备注:Syschronized 非公平锁,所以它的重量级锁的同步队列不是FIFO,而是通常随机唤醒一个。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章