单例模式探究
发布日期:2021-07-20 20:53:58
浏览次数:72
分类:技术文章
本文共 787 字,大约阅读时间需要 2 分钟。
一般我们写单例模式要达到懒加载+线程安全+高性能一般会使用双锁检测DCL写法,如下:
public class Singleton { private volatile static Singleton singleton; private Singleton (){} public static Singleton getSingleton() { if (singleton == null) { synchronized (Singleton.class) { if (singleton == null) { singleton = new Singleton(); } } } return singleton; } }
现在可以利用
①静态内部类是在被显式调用才被加载
②final可见且不可变=绝对线程安全
来达成懒加载+线程安全+高性能的要求,不过这种写法和DCL写法不同的是只适用于静态域的情况,双检锁方式可在实例域需要延迟初始化时使用。
写法如下:
public class Singleton { private static class SingletonHolder { private static final Singleton INSTANCE = new Singleton(); } private Singleton (){} public static final Singleton getInstance() { return SingletonHolder.INSTANCE; } }
转载地址:https://blog.csdn.net/liao0801_123/article/details/89000240 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月23日 07时32分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
CAS KVM 虚拟机的保护与恢复
2019-04-27
再谈 COW、ROW 快照技术
2019-04-27
从 2017 OpenStack Days China 看国内云计算的发展现状
2019-04-27
Python Module_Socket_网络编程
2019-04-27
VMware 虚拟机的虚拟磁盘编程知识点扫盲之一
2019-04-27
疑难杂症——bash: /dev/null: Permission denied
2019-04-27
VMware 虚拟机的虚拟磁盘编程知识点扫盲之二
2019-04-27
VMware 虚拟化编程(2) — 虚拟磁盘文件类型详解
2019-04-27
让人失望透顶的 CSDN 博客改版
2019-04-27
VMware 虚拟化编程(4) — VDDK 安装
2019-04-27
VMware 虚拟化编程(5) — VixDiskLib 虚拟磁盘库详解之一
2019-04-27
VMware 虚拟化编程(6) — VixDiskLib 虚拟磁盘库详解之二
2019-04-27
VMware 虚拟化编程(7) — VixDiskLib 虚拟磁盘库详解之三
2019-04-27
VMware 虚拟化编程(8) — 多线程中的 VixDiskLib
2019-04-27
VMware 虚拟化编程(9) — VMware 虚拟机的快照
2019-04-27
VMware 虚拟化编程(10) — VMware 数据块修改跟踪技术 CBT
2019-04-27
VMware 虚拟化编程(11) — VMware 虚拟机的全量备份与增量备份方案
2019-04-27
VMware 虚拟化编程(12) — VixDiskLib Sample 程序使用
2019-04-27