java多线程系列20-单例模式

单例模式有两种立即加载和延迟加载。立即加载这种不多说,主要说说延迟加载。 平时在很多地方的延迟加载都用了双重检查: 这种实际在所线程下并不是线程安全的,主要问题在于创建一个对象实际上大致可以分为三步: 1.分配对象内存空间 2.初始化对象 3.将对象引用指向刚分配的内存地址 这里编译器可能对步骤2和和步骤3对象重排序,导致其他线程看到未初始化的字段属性。这里有两种结局方案: (1)将变量设为vol
相关文章
相关标签/搜索