package GOGO;
/**
* 单机版下的单例模式
*/
public class SingletonDemo {
private static SingletonDemo instance = null;
//构造器独一份
private SingletonDemo(){
//如果只有一个实例,该句话只被打印一次
System.out.println(Thread.currentThread().getName()+"\t 我是构造方法");
}
public static SingletonDemo getInstance(){
if (instance == null)
instance = new SingletonDemo();
return instance;
}
public static void main(String[] args) {
//单线程
System.out.println(SingletonDemo.getInstance() == SingletonDemo.getInstance());
System.out.println(SingletonDemo.getInstance() == SingletonDemo.getInstance());
System.out.println(SingletonDemo.getInstance() == SingletonDemo.getInstance());
System.out.println("=======================");
//并发多线程,就会出现很多问题,会创建很多实例,可以对getInstance加synchronized,但是太重,并发效率降低
for (int i = 1; i < 10; i++) {
new Thread(()->{
SingletonDemo.getInstance();
},String.valueOf(i)).start();
}
}
}
单机版下的单例模式
最新推荐文章于 2022-09-05 14:45:41 发布
64

被折叠的 条评论
为什么被折叠?



