我的java DCL-based Singleton

来源:互联网 发布:淘宝买家套话精仿高仿 编辑:程序博客网 时间:2024/06/06 05:13

1)instance完全创建好了,另一个线程得到的还是null:用volatile解决

2)对象内存块地址赋给了instance,但对象还没完全construct完毕:先访问一下对象,再赋instance,

class Singleton {private static volatile Singleton instance = null;private Singleton() {}public static Singleton getInstance() {if (instance == null) {synchronized (Singleton.class) {if (instance == null) {Singleton ins = new Singleton();/* ensure object has been fully constructed before assigned to instance * rule: in a thread, construction of an object -> access to the object. */ins.hashCode(); instance = ins;}}}return instance;}}


0 0
原创粉丝点击