饿汉式
public class SingleEhan {
private static SingleEhan eHan = new SingleEhan();
private SingleEhan() {
System.out.println("1一个饿汉式对象被实例化");
}
public static SingleEhan getInstance() {
return eHan;
}
}
懒汉式
public class SingleLanhan {
private static SingleLanhan lanhan;
private SingleLanhan() {
System.out.println("1一个懒汉式对象被实例化");
}
public static SingleLanhan getInstance() {
synchronized ("") {
if (lanhan==null) {
lanhan = new SingleLanhan();
}
}
return lanhan;
}
// public static synchronized SingleLanhan getInstance() {
// if (lanhan==null) {
// lanhan = new SingleLanhan();
// }
// return lanhan;
// }
}
测试类
public class Test {
public static void main(String[] args) {
// 懒汉式并发测试
// Runnable run1 = () ->{
// SingleLanhan.getInstance();
// };
// for (int i = 0; i < 1000; i++) {
// new Thread(run1).start();
// }
// 饿汉式并发测试
Runnable run2 = () ->{
SingleEhan.getInstance();
};
for (int i = 0; i < 1000; i++) {
new Thread(run2).start();
}
}
}