一、饿汉式代码:
1、创建一个饿汉式单例类
package com.rf.designPatterns.singleton.hungrySingleton;
/**
* @description: 饿汉式单例模式
* @author: xiaozhi
* @create: 2020-05-23 22:26
*/
public class HungrySingleton {
//直接声明一个需要被单例的对象,并初始化
private final static HungrySingleton hungrySingleton=new HungrySingleton();
//私有的构造器,不被外部所访问
private HungrySingleton(){
System.out.println("构造方法。。。。");
}
//提供一个外部获取HungrySingleton对象的静态方法
public static HungrySingleton getInstance(){
return hungrySingleton;
}
}
2、创建一个多线程类
package com.rf.designPatterns.singleton.hungrySingleton;
/**
* @description: 多线程类
* @author: xiaozhi
* @create: 2020-05-23 22:49
*/
public class MyThread implements Runnable{
@Override
public void run() {
HungrySingleton instance = HungrySingleton.getInstance();
System.out.println(Thread.currentThread().getName()+": "+instance);
}
}
3、创建一个测试类
package com.rf.designPatterns.singleton.hungrySingleton;
/**
* @description: 测试
* @author: xiaozhi
* @create: 2020-05-23 22:35
*/
public class Test {
public static void main(String[] args) {
Thread thread1 = new Thread(new MyThread());
Thread thread2 = new Thread(new MyThread());
thread1.start();
thread2.start();
System.out.println("=========");
}
}
二、输出结果: