懒汉式(线程不安全)

优缺点说明

  1. 起到了Lazy Loading的效果,但是只能在单线程下使用

  2. 如果在多线程下, 一个线程进入if(singleton == null)判断 语句块,还未来得及往下执行,另一个线程也通过了这个判断语句,这时便会产生多个实例.

所以在多线程的环境下,不可使用种方式

  1. 结论:在实例开发中,不要使用这种方式(因为他有潜在的危险,就不能用,他就有错误了,不可用,不可用,不可用!)

代码演示

package com.atguigu.principle.singleton.type03;public class SingletonTest03 {public static void main(String[] args) {}
}class Singleton{private static Singleton instance;private Singleton() {}// 提供一个静态的公有方法,当使用到该方法时,才去创建instance// 即懒汉式public static Singleton getInstance() {if (instance == null) {instance = new Singleton();}return instance;}
}

更多:http://victorfengming.gitee.io/design_pattern/

单例设计模式-懒汉式(线程不安全)相关推荐

  1. 单例设计模式-懒汉式(线程安全)

    懒汉式(线程安全) 有缺点说明 解决了线程不安全问题 效率太低了,每个线程在想获得类的实例时候,执行getInstance()方法都要进行同步.而其实这个方法只执行了一次实例化代码就够了,后面的想获取 ...

  2. 单例设计模式懒汉式和恶汉式

    一,单例设计模式懒汉式和恶汉式 懒汉式在类加载时不初始化,延迟加载.(配置文件) 饿汉式在类加载时初始化,加载慢,获取对象快. 饿汉式是线程安全的, 懒汉式需要加synchronized,否则不安全. ...

  3. 设计模式之单例设计模式(懒汉式)

    package july.star.thread22; /*** Teacher* 饿汉式:类一加载就加载* 懒汉式:需要时才加载* 面试题:单例模式的思想是什么,请用代码体现.* 开发:饿汉式(不会 ...

  4. JAVA_Lesson8(传智播客笔记之继承、单例设计模式懒汉式、饿汉式)

    数组对象工具的建立(重要的是这种思想) 主函数是静态的,主函数需要调用的也需要static. 当有2个.java文件时,先编译含有函数功能的.java文件,再编译含主函数的.java文件.(因为主函数 ...

  5. 单例设计模式-ThreadLocal线程单例

    package com.learn.design.pattern.creational.singleton;/*** 是基于ThreadLocal的* 所以必不可少要使用这个类* * 我们看一下这个类 ...

  6. 【C++设计模式】Singleton 单例设计模式与线程安全

    文章目录 何为设计模式(Design Pattern) 单例模式(Singleton) 什么是单例模式? 饿汉单例模式 懒汉单例模式 懒汉单例模式的线程安全版本 经典加锁版本 优化版本:双重检查锁 使 ...

  7. java饿汉式有啥作用,Java面试 - 什么是单例设计模式,为什么要使用单例设计模式,如何实现单例设计模式(饿汉式和懒汉式)?...

    什么是单例设计模式? 单例设计模式就是一种控制实例化对象个数的设计模式. 为什么要使用单例设计模式? 使用单例设计模式可以节省内存空间,提高性能.因为很多情况下,有些类是不需要重复产生对象的.如果重复 ...

  8. JAVA单例设计模式简单实现(懒汉与恶汉),多例设计模式的简单实现

    单例设计模式饿汉式 package Singleton; public class Singleton { private static final Singleton INSTANCE = new ...

  9. 单例设计模式八种方式——5) 懒汉式(线程安全,同步代码块) 6) 双重检查 7) 静态内部类 8) 枚举

    懒汉式(线程安全,同步代码块)应用实例 优缺点说明: 1) 这种方式,本意是想对第四种实现方式的改进,因为前面同步方法效率太低, 改为同步产生实例化的的代码块 2) 但是这种同步并不能起到线程同步的作 ...

最新文章

  1. 创业者如何小步快跑,从0开始实现自己的产品?
  2. 首届 KubeCon 2020 线上峰会隆重举办 | 云原生生态周报 Vol. 59
  3. python教程:如何写类?
  4. 洛谷 P2746 [USACO5.3]校园网Network of Schools (Tarjan,SCC缩点,DAG性质)
  5. 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II
  6. Elasticsearch嵌套查询
  7. Java获取方法信息(某一函数,方法也是一个对象)
  8. ibatis+Castle.MCV 版 NPetshop3
  9. github因网络问题无法git clone解决办法
  10. DeepMind的脑补AI再获新技能:看文字知场景、复杂环境、连续视频……
  11. 2021CCF推荐国际学术会议A类及相关领域介绍
  12. 车牌识别平台开源(支持蓝牌、绿牌,准确率高达96%)
  13. 人工智能电力行业应用,人工智能的需求分析
  14. 地图下面的标尺是什么意思_【一点资讯】地图的主要类型有哪些? 何谓地图比例尺? 什么是地图注记? www.yidianzixun.com...
  15. 【脑图制作】万彩脑图大师教程 | 修改主题样式
  16. 又拍云php表单,又拍云存储上传插件 - 支持客户端直传、服务端中转、分片上传 – 基于ThinkPHP和Bootstrap的极速后台开发框架...
  17. uniapp、uniCloud实现微信公众号自动查询淘宝京东优惠券制作过程
  18. Word2013目录设置,页码对齐
  19. SecureCRT鼠标快速复制粘贴
  20. 实现微信机器人开发,个微api

热门文章

  1. 解决:Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy)
  2. 使用 Docker 部署 Node 服务
  3. java 将一段时间分割为两个连续的时间
  4. mysql----innodb统计信息
  5. sscanf的高级用法
  6. Spring中的动态代理
  7. 修改2440里面的FriendlyARM
  8. 接口,new,匿名内部类
  9. 10种顶级javascript框架比较-The Top 10 Javascript MVC Frameworks
  10. 如何打造高效的多任务、高并发的网络服务器系统?