Java

1. JVM

2. 并发

操作系统/Linux/系统编程

设计模式

1. 单例

为何double-check不安全,而double-checked + volatile就安全了?

因为instance = new XXX() 分为3步:(1) 给对象分配内存 (2) 初始化对象(往对象里写) (3) 赋值给instance

其中(2)(3)可能重排序,导致其他线程看到未完全初始化的对象。

博客

(更新中...)


ponnylv
3 声望0 粉丝