优秀网站开发公司,网站建设丷金手指专业十五,公司做网站还是做阿里好呢,企业网站怎么查加油#xff0c;新时代打工人#xff01; 简单粗暴#xff0c;学习Java设计模式。
23种设计模式定义介绍
Java中23种设计模式-单例模式
Java中23种设计模式-单例模式2–懒汉式线程不安全
package mode;/*** author wenhao* date 2024/02/19 09:38* description 单例模式… 加油新时代打工人 简单粗暴学习Java设计模式。
23种设计模式定义介绍
Java中23种设计模式-单例模式
Java中23种设计模式-单例模式2–懒汉式线程不安全
package mode;/*** author wenhao* date 2024/02/19 09:38* description 单例模式--懒汉式 线程安全* 是否 Lazy 初始化是* 是否多线程安全是* 这种方式具备很好的 lazy loading能够在多线程中很好的工作但是效率很低99% 情况下不需要同步。* 优点第一次调用才初始化避免内存浪费。* 缺点必须加锁 synchronized 才能保证单例但加锁会影响效率。* getInstance() 的性能对应用程序不是很关键该方法使用不太频繁。*/
public class SingleMode2 {private SingleMode2() {}private static volatile SingleMode2 singleMode2;public static SingleMode2 getInstance() {if (singleMode2 null) {synchronized (SingleMode2.class){if(singleMode2 null){singleMode2 new SingleMode2();}}}return singleMode2;}public static void main(String[] args) {new Thread(() - {SingleMode2 instance1 getInstance();System.out.println(instance1);}).start();new Thread(() - {SingleMode2 instance2 getInstance();System.out.println(instance2);}).start();}
}
通过运行结果看两个线程的地址值是相同的说明内存空间里创建了一个对象。