import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class Singleton4 {
private Singleton4(){};
private static Singleton4 single = null;
private static Lock lock = new ReentrantLock();
public static Singleton4 getInstance(){
if(single == null){
getSingle();
}
return single;
}
private static void getSingle(){
//枷锁 1
lock.lock();
if(single == null){
single = new Singleton4();
}
lock.unlock();
//枷锁 2
// synchronized(Singleton4.class)
// {
// if(single == null){
// single = new Singleton4();
// }
// }
}
}
原文地址:http://chaojiit.blog.51cto.com/4851948/1591781