单例设计模式 - 《Head First 设计模式》
2021/9/6 6:06:53
本文主要是介绍单例设计模式 - 《Head First 设计模式》,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
单例设计模式:确保一类只有一个实例,并提供一个全局访问点。
应用场景: 线程池、缓存、日志对象、注册表设置等
多线程下同步全局实例获取的方法
public class Singleton{ private static Singleton singleton = null; private Singleton(){} // synchronized修饰该方法虽然让各个线程互斥的访问此方法解决多线程下线程不安全的问题但是来带来了性能上的问题 // 真正需要同步的只有第一次创建实例的时候 private static synchronized Singleton getInstance(){ singleton = new Singleton(); return singleton; } }
多线程下懒加载模式的优化
双重检查锁的单例模式,首先检查实例是否创建如果未创建,才进行同步,这样一来只有真正创建单例的时候才会进行同步操作。
public class Singleton{ private volatile static Singleton singleton = null; // volatile关键字的作用 1.保证变量可见性 2.保证变量有序性 private Singleton(){} private static Singleton getInstance(){ if(singleton == null){ // 第一次判空,检查实例是否存在如果不存在再进入同步块 synchronized(Singleton.class){ if(singleton == null){ // 第二次判空,检查实例是否存在,如果仍然为null,则创建实例 singleton = new Singleton(); } } } return Singleton; } }
这篇关于单例设计模式 - 《Head First 设计模式》的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求