当前位置: 首页 > news >正文

两种单例模式

1.单例模式分为两种,饿汉模式和懒汉模式.以下是饿汉模式:

public class SingleTonHungry {private static SingleTonHungry singleTonHungry = new SingleTonHungry();private SingleTonHungry() {}public static SingleTonHungry getInstance() {return singleTonHungry;}
}

2.懒汉模式下,需要考虑多线程安全问题,首先是使用synchronized加锁,然后是使用双if判断是否存在实例,最后需要使用volatile保证内存可见性和指令重排序问题.

public class SingleTonLazy {private static volatile SingleTonLazy singleTonLazy = null;private static Object lock = new Object();private SingleTonLazy() {}public static SingleTonLazy getInstance() {if (singleTonLazy == null) {synchronized (lock) {if (singleTonLazy == null) {singleTonLazy = new SingleTonLazy();}}}return singleTonLazy;}
}

http://www.lryc.cn/news/97797.html

相关文章:

  • List中交集的使用
  • TypeScript基础篇 - TS的函数
  • Vue项目如何生成树形目录结构
  • postgresql四种逻辑复制的状态
  • 梯度下降法和牛顿法
  • elment-ui的侧边栏 开关及窗口联动
  • 【从零开始学习JAVA | 第三十二篇】 异常(下)新手必学!
  • onnxruntime (C++/CUDA) 编译安装
  • 第三篇-Tesla P40+CentOS-7+CUDA 11.7 部署实践
  • Unity游戏源码分享-ARPG游戏Darklight.rar
  • 类型转换运算符
  • Kafka 入门到起飞系列 - 消费者组管理、位移管理
  • SpringBoot——数据层三组件之间的关系
  • LeetCode647.Palindromic-Substrings<回文子串>
  • React的hooks---useContext
  • 【Terraform学习】TerraformCloud入门介绍(快速入门)
  • linux实现运行java分包部署
  • 数据安全之全景图系列——数据分类分级落地实践
  • C++实现MySQL数据库连接池
  • day4 驱动开发 c语言学习
  • history命令:显示命令执行时间
  • Django接口返回JSON格式数据报文
  • OBS 迁移--华为云
  • 【Docker consul的容器服务更新与发现】
  • MFC第二十天 数值型关联变量 和单选按钮与复选框的开发应用
  • 服务器 Docker Alist挂载到本地磁盘(Mac版)夸克网盘
  • EMP-SSL: TOWARDS SELF-SUPERVISED LEARNING IN ONETRAINING EPOCH
  • 注解和反射01--什么是注解
  • 虚拟机 RHEL8 安装 MySQL 8.0.34
  • kafka 总结宝典