单例模式的线程安全问题
1.懒汉式才有安全问题,需要做如下修改:
// 单例模式(懒汉式)
public class Foo {
private Foo(){
}
private static Foo instance = null;
//
public static Foo getInstance(){
if (instance == null){
synchronized (Foo.class){
if (instance == null){
instance = new Foo();
}
}
}
return instance;
}
public void sort(int[] arr){
// TODO: 2016/11/30
}
}
2.饿汉式没有线程安全问题
// 单例模式(饿汉式)
public class Foo {
private Foo(){
}
private static Foo instance = new Foo();
public static Foo getInstance(){
return instance;
}
public void sort(int[] arr){
// TODO: 2016/12/1
}
}