返回信息流本人在学习排查死锁问题时,发现了这么一个现象
这是业务代码
当使用装箱时,居然不发生死锁!
然而直接new出一个Boolean对象时,发生了死锁,符合预期
不是说Boolean flag = true会自动转化为Boolean flag = new Boolean(true)吗,那为何运行结果会有这样的差异?
这是一条镜像帖。来源:北邮人论坛 / java / #59656同步于 2018/7/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
关于Java封装类加锁的问题
carrick16
2018/7/21镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
谢谢,之前看书只记得Integer有缓存,这次学习到了![ema11]
【 在 flymop 的大作中提到: 】
: 简单来说 字面量缓存 flag1,2是同一个对象,synchronized同一个monitor对象对已获得锁的线程可重入
他这个缓存是一个线程有一份还是一个进程里面的所有线程共享一份呢?
【 在 flymop 的大作中提到: 】
: 简单来说 字面量缓存 flag1,2是同一个对象,synchronized同一个monitor对象对已获得锁的线程可重入