欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

三种单例模式的写法

程序员文章站 2022-03-07 16:04:43
...

第一种:

public class test3 {
	
	private static Object singleton;
	
	public static Object singleton() {
		
		if(singleton == null) {
			singleton = new Object();
		}
		return singleton;
	}

}

这种模式在多线程下会生成多个Object对象;

第二种:

public class test3 {
	
	private static Object singleton ;
	
	public static synchronized Object singleton() {
		if(singleton == null) {
			singleton = new Object();
		}
		return singleton;
	}
	
}

这种模式在多线程获取Object 对象直接变成同步,多线程下效率很低

第三种:

public class test3 {
	
	private static Object singleton = new Object();
	
	public static Object singleton() {
		return singleton;
	}

}

类在加载的时候就直接生成对象,多线程不会生成多个对象,也不会影响效率

 

相关标签: 单例