首页 > 代码库 > java 单例模式

java 单例模式




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();

// }

// }

}

}


java 单例模式