本帖最后由 隋营营 于 2012-5-7 09:27 编辑
饿汉式:
public class Treasure {
private static Treasure treasure = new Treasure();
private Treasure() {
}
public Treasure getInstance() {
return treasure ;
}
}
懒汉 式 : public class Treasure {
private static Treasure treasure = null;
private Treasure() {
}
public static synchronized getInstance() {
if (treasure == null) {
treasure = new Treasure();
}
return treasure;
}
}
饿汉式是线程安全的 , 在类创建的同时就已经创建好一个静态对象供系统使用 , 以后不在改变
懒汉式如果在创建实例对象时不加上 synchronized 则会导致对象的访问不是安全的
在一般情况下推荐使用第一种
但是懒汉式也有存在的意义:当多线程同时访问时,会在牺牲效率的前提下保证安全!
|