我觉得这里的singleton需要加上volatile吧,防止指令重排。

来源:11-1 单例模式在Netty里面的应用

用户1148976

2019-02-23

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

写回答

1回答

闪电侠

2019-02-23

确实要加上,感谢指正!

0
1
用户1148976
谢谢老师的回答!
2019-02-24
共1条回复

Java读源码之Netty深入剖析

解析netty各大组件细节,百万级性能调优,设计模式实际运用

2334 学习 · 283 问题

查看课程