我觉得这里的singleton需要加上volatile吧,防止指令重排。
来源:11-1 单例模式在Netty里面的应用

用户1148976
2019-02-23
创建了一个Singleton对象并初始化化变量singleton来引用Singleton。可能出现的问题:在Singleton构造函数执行之前,由于指令重排,singleton可能成为非null的,即复制语句在对象实例化之前调用,如果此时另一个线程进到getInstance()方法中(外层判空,即//0行),由于singleton != null,但是singleton的引用对象Singleton还没有初始化完成,第二个线程会得到一个没有初始化完成的对象,导致系统崩溃。
写回答
1回答
-
确实要加上,感谢指正!
012019-02-24
相似问题