sychronized简单流程
2022-06-14 22:02:07 4 举报
sychronized简单流程
作者其他创作
大纲/内容
轻量级锁
锁记录对象地址和锁对象markword互换过程
栈内存中创建 锁记录对象,注意和锁对象(在堆中)区分并且交换两个对象的信息
锁重入机制,继续竞争膨胀成重量级锁
竞争
线程进入entrylistBlocked状态
monitor
轻量级锁CAS
owenr指向该线程,表示抢到了重量级锁
是否处于临界区
竞争失败
当锁释放的时候
自旋锁:优点:不会让线程立马进入blocked状态,而是让线程不断通过CAS循环攻击markword抢锁,缺点:这非常耗费资源,在自旋状态下会占用一个核心,浪费cpu资源”
monitorwaitset线程处于WAITTING
notify
偏向锁
竞争成功
调用wait之类方法
进入自旋状态不断的通过CAS进行轻量级锁CAS操作主要是攻击对象锁的Markword
升级成重量级锁
1。升级为重量级消耗很大,因为其他线程会进入blockd状态,唤醒线程会进行系统状态切换,很耗费时间。2.重量级锁也叫互斥锁,同步锁,悲观锁
收藏
0 条评论
回复 删除
下一页