![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 81
st_33
这个作者很懒,什么都没留下…
展开
-
Synchronized原理
Java 对象的大小与操作系统的位数有关。我们程序中加锁时,每个对象会关联一个Monitor,Monitor是真正的锁,它由操作系统提供,使用成本较高,从Java6开始对synchronized获取锁的方式进行了改进,从直接使用Monitor锁改成了可以使用轻量级锁、偏向锁进行优化…轻量级锁的使用场景:如果一个对象虽然有多线程要加锁,但加锁的时间是错开的(也就是没有竞争,如果有竞争轻量级锁会升级为重量级锁),那么可以 使用轻量级锁来优化,轻量级锁不需要monitor锁,使用线程栈帧中的锁记录充当轻量级锁。原创 2023-12-30 11:09:36 · 836 阅读 · 1 评论 -
Spring循环依赖学习笔记
假设这里只有一级和三级缓存的话,我每次从三级缓存中拿到singleFactory对象,执行singleFactory.getObject()方法都会生成一个新的代理对象,这是不行的,因为TestServiceB是单例的,所有这里我们要借助二级缓存来解决这个问题,将执行了singleFactory.getObject()产生的对象放到二级缓存中去,后面去二级缓存中拿,没必要再执行一遍singletonFactory.getObject()方法再产生一个新的代理对象,保证始终只有一个代理对象。...原创 2022-08-06 23:19:49 · 119 阅读 · 0 评论 -
Java Bean线程问题
源码1.controller类@RestController//@Scope(value = "prototype")public class SpringBeanController { @RequestMapping("say") public String sayHello(){ return "Hello Spring Boot"; } private int var = 0; // 定义一个普通变量 private static原创 2022-03-05 01:03:58 · 250 阅读 · 1 评论