![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 91
拙野
只追求质量,不追求数量。不糊弄别人就是不糊弄自己!
展开
-
高频面试知识点ThreadLocal,看完必彻底搞懂(二)
从上图中,我们可以看出来,当指向ThreadLocal的强引用不存在的时候,垃圾回收器便会在下一次GC的时候,将其回收。//e不为空,要么就是是同一个key,直接覆盖value即可,要么就是哈希冲突了,这种情况不做处理,直接在往下寻址就可,还有一种情况就是不是同一个key,而是这个位置是一个key被回收,而value未被回收的Entry,此时用新的替换掉旧的即可。从上面的源码分析中,我们知道,真正的清理逻辑是在cleanSomeSlots()方法里面的,那么我们就看看,它里面做了什么处理。原创 2023-11-05 22:55:50 · 262 阅读 · 0 评论 -
高频面试知识点ThreadLocal,看完必彻底搞懂(一)
相信参加过很多次面试的圣斗士都知道,关于ThreadLocal基本上是面试必问,而且对于大多数人来说,也都是害怕被问到这个问题的。当然,也包括博主我。虽然,每次拿起八股文,都会看看ThreadLocal。但是,看完也就那样,知道个名字,知道他是线程独有的变量,不被其他线程共享使用。然而,最终也就是停留在知道这个层面,人云亦云的去说。至于到底ThreadLocal是什么,为什么需要ThreadLocal,为什么有同步锁了,还需要ThreadLocal?原创 2023-11-05 22:56:58 · 719 阅读 · 8 评论 -
多线程学习之类锁、对象锁、方法锁
在Java中,对于synchronized关键字,大家看到的第一反应就是这个关键字是进行同步操作的,即得名“同步锁”。当用它来修饰方法和代码块时,默认当前的对象为锁的对象,即对象锁。当用来修饰类和静态方法时,默认当前的类为锁的对象所以,方法锁既可以是类锁,又可以是对象锁。主要就是看他修饰的静态方法还是非静态方法。对象锁修饰在方法上时,多个线程调用同一对象的同步方法时会阻塞,调用不同对象的同步方法时不会阻塞。可以看出,两个线程在调用不同对象的同步方法时,并未发生阻塞。转载 2023-02-22 22:08:17 · 622 阅读 · 0 评论