![]() |
1
0
答案是,这取决于。是你的吗
Java并发在实践中,第16.2.3章概述了安全的初始化习惯用法,并包含一个惰性的初始化习惯用法。16.2.4讨论双重检查锁定习语。 |
![]() |
2
2
这不是线程安全的。声明
|
![]() |
3
1
同意蒂姆以前的帖子。Volatile使得可视性和双重检查锁定的原因被描述为 clever but broken 围绕部分构造的对象(缓存一致性/JVM优化)。 正如Tim所建议的,这都在Goetz的书中,但我想提出一个关于惰性初始化的观点。为什么这么做?在我的经验中,它一般不需要,而且您运行在多线程上下文中,并且真正关心初始化安全性——您引入了很多的变异性和复杂性,这是很难测试的。
|
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |
![]() |
user1700890 · 了解交互式代理Python API中的线程 2 年前 |
![]() |
AntonBoarf · 为什么要将实例变量指定给局部变量? 2 年前 |
![]() |
rhymes · 如何让线程操作相同的java列表 2 年前 |