![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
synchronized
文章平均质量分 77
synchronized学前知识储备
我想發財
这个作者很懒,什么都没留下…
展开
-
synchronized(5)-不同场景效果不同
【普通】创建线程的两种方式。原创 2024-07-02 20:24:35 · 163 阅读 · 0 评论 -
synchronized(4)-轻量级锁、自旋锁、重量级锁
【总结】多线程竞争锁对象时,首先会有一个线程抢到锁执行同步块,其他线程会自旋获取锁,如果自旋获取不到会进入ContentionList队列,当Owner线程unlock状态时,会将ContentionList尾部的一些线程放入EntryList,并且指定其中一个为OnDeck线程,该线程可以和正在竞争锁的线程一起竞争锁,OnDeck线程会一直等到竞争到锁,成为Owner线程。【轻量级锁总结】轻量级锁是jdk1.6引入的线程优化,当锁对象使用的是轻量级锁时,说明当前同步块。,不需要上升到操作系统级别的阻塞。原创 2024-07-01 20:20:34 · 779 阅读 · 0 评论 -
synchronsized(3)-偏向撤销导致的问题及对应解决方案
在真正理解偏向撤销前需要是两码事:【撤销】:多线程竞争导致不能再使用偏向模式的时候,主要是告知这个锁对象不能再使用偏向模式。【释放】:对应就是 synchronized 方法的推出或 synchroniezd 块的结束。从偏向状态撤回原有的状态,也就是将 markword 的第 3 位(是否偏向撤销)的值,从 1 变回 0 (1代表偏向,0代表非偏向)。1、如果只是⼀个线程获取锁,再加上“偏⼼”的机制,是没有理由撤销偏向的,所以偏向撤销只能发⽣在有竞争的情况下。原创 2024-06-30 20:39:19 · 719 阅读 · 0 评论 -
synchronized(2)-偏向锁
一、偏向锁简介Java偏向锁是Java6引⼊的⼀项多线程优化。顾名思义,它会偏向于第⼀个访问锁对象的线程,如果同步锁只有⼀个线程访问,则线程是不需要触发同步的,这种情况下,就会给该线程加⼀个偏向锁;如果在运⾏过程中,遇到了其他线程抢占锁,则持有偏向锁的线程会被挂起,JVM会消除它身上的偏向锁,将锁升级到轻量级锁,然后再唤醒原持有偏向锁的线程。二、偏向锁的场景通过上述简介可以看出,原创 2024-06-30 15:51:24 · 378 阅读 · 0 评论 -
synchronized(1)-学前知识储备
synchronized知识准备原创 2024-06-30 14:14:35 · 296 阅读 · 0 评论