单例模式之懒汉式(线程安全)
单例模式:
一.单例模式之懒汉式(线程安全)
- 构造器私有化(防止外部new创建实例)
private SingleTon() {}
- 类的内部创建对象
private final static SingleTon singleTon = new SingleTon();
3.向外暴露一个返回单例对象静态的公共方法,起到了懒加载效果,使用synchronized使得这方法线程安全
public static SingleTon getInstance() {if (singleTon == null) {singleTon = new SingleTon();}return singleTon;
}
- 具体代码
/*** <h3>懒汉式(线程不安全)</h3>* <p>* 优点: 起到了Lazy Loading的效果,解决了线程安全问题<br />* 缺点: 效率太低了,每个线程在想获得类的实例的时候,执行getInstance方法都要进行同步,而其实这个方法只需要执行一次实例化代码就行了,后面的想获得该类实例,直接return就行,方法进行同步效率太低,实际开发中,不推荐使用这种方式。* </p>* <p>* * </p>*/
public class SingleTon {// 1.构造器私有化private SingleTon() {}// 2.类内部创建对象引用private static SingleTon singleTon;// 3.向外暴露一个返回单例对象静态的公共方法,起到了懒加载效果,使用synchronized使得这方法线程安全public synchronized static SingleTon getInstance() {if (singleTon == null) {singleTon = new SingleTon();}return singleTon;}
}
单例模式之懒汉式(线程安全)相关推荐
- 单例设计模式八种方式——5) 懒汉式(线程安全,同步代码块) 6) 双重检查 7) 静态内部类 8) 枚举
懒汉式(线程安全,同步代码块)应用实例 优缺点说明: 1) 这种方式,本意是想对第四种实现方式的改进,因为前面同步方法效率太低, 改为同步产生实例化的的代码块 2) 但是这种同步并不能起到线程同步的作 ...
- 单例设计模式介绍||单例设计模式八种方式——1) 饿汉式(静态常量) 2) 饿汉式(静态代码块) 3) 懒汉式(线程不安全) 4) 懒汉式(线程安全,同步方法)
单例模式 单例设计模式介绍 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法). 比如Hibernate的 ...
- JAVA单例模式:懒汉式,饿汉式
今天复习了一下java的单例模式,写了懒汉式和饿汉式的实现例子.代码如下: 1.懒汉式单例 package com.lf.shejimoshi;/*** @classDesc: 类描述:(懒汉式单例测 ...
- 单例模式之懒汉式单例模式
单例模式之懒汉式单例模式 本文将探讨三种懒汉式单例模式,会从代码的运行效率,线程安全等方面探讨. 在上一篇文章中,刚刚介绍饿汉式单例模式,在本文开头先简单的说一下懒汉式单例模式和饿汉式单例模式的区别: ...
- 经典案例:单例模式之懒汉式和饿汉式
单例模式之懒汉式和饿汉式 文章目录 单例模式之懒汉式和饿汉式 一.单例模式是什么? 二.几种单例模式 1.懒汉模式 2.饿汉模式 三.懒汉模式和饿汉模式的区别 一.单例模式是什么? 保证整个系统中一个 ...
- java单例模式之懒汉式与饿汉式
首先我们介绍一下单例模式 单例类是只有一个实例对象: 该单例对象必须由单例类自行创建: 单例类对外提供一个访问该单例的全局访问点. 单例模式的优点 单例模式可以保证内存里只有一个实例,减少了内存的开销 ...
- 静态内部类的单例模式如何保证线程安全
一,单例模式有6种实现方式: 1.懒汉式: 2.懒汉式-加锁: 3.双重检验锁: 4.饿汉式: 5.静态内部类: 6.枚举: 1.懒汉式: public class Singleton { //私有的 ...
- 单例模式【懒汉式+饿汉式+枚举】
软件设计模式(Software Design Pattern) 又称设计模式,是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.它描述了在软件设计过程中的一些不断重复发生的问题,以及 ...
- 设计模式:单例模式之懒汉式
懒汉式(线程不安全) 1). 起到了懒加载的效果,但是只能在单线程下使用. 2). 如果在多线程下,一个线程进入了if(null == instance)判断语句块,还未来得及往下执行,另一个线程也通 ...
- 懒汉式(线程安全,同步代码块儿)
懒汉式(线程安全,同步代码块儿) 代码演示 // 懒汉式 (线程安全_ 同步放法_) class Singleton{private static Singleton instance;private ...
最新文章
- 霍夫变换(Hough Transform):霍夫变化在图像处理以及点云处理中的直线检测应用
- 【Android APT】编译时技术 ( 编译时注解 和 注解处理器 依赖库 )
- [TCP/IP] TCP在listen时的参数backlog的意义
- 程序员面向软件开发时,如何成功?
- 广告位管理系统--跨域广告加载问题
- php版ueditor配置_ThinkPHP配置UEditor
- 密度聚类DBSCAN的matlab代码
- 【恩智浦杯(飞思卡尔)全国大学生智能汽车竞赛】解读部分北科技术报告图像处理内容(点到为止)
- 扑克牌java发牌_Java实现扑克牌洗牌和发牌
- DuckDuckGo将与整合Apple Maps有更丰富的地图信息及隐私
- 软件测试面试题-那些让我印象深刻的bug
- 怎么安装redhat linux操作系统,Linux操作系统RedHat6.5安装
- 【B2B2C多用户】WSTMart商城系统 V2.0.6更新版发布
- polyfit多项式拟合函数的用法
- 2022年来了,从Python定制一份日历开始吧!
- Kotlin 标准库随处可见的 contract 到底是什么?
- Kanade-Lucas-Tomasi Feature Tracker 代码分析
- 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结
- linux洪水攻击软件,SYN洪水攻击工具hping SYN-Flooding tool
- iOS Masonry使用
热门文章
- editplus使用php,EditPlus配置PHP调试环境详细图文介绍
- 开设进口零食店的项目
- 如果面试官问您还有什么问题要问的,应该如何巧妙的回答才算合适呢?
- Unity3D实现AB包加载资源
- C/C++程序员桌面壁纸---简尚黑
- 2022机修钳工(中级)特种作业证考试题库模拟考试平台操作
- 想要空号检测软件检测结果更加准确 那么注意选择
- jq ajax ajaxsubmit,如何理解jQuery中的ajaxSubmit方法
- 扫雷游戏网页版_世界排名前30,六成都是中国人:2020年,沉迷「扫雷」的玩家是怎样一群人?| 探寻游戏意义...
- 在Ubuntu18.04TLS下安装小米随身wifi驱动