单例设计模模式——懒汉式为什么线程不安全
来源:互联网 发布:约拿情结 知乎 编辑:程序博客网 时间:2024/06/03 19:47
单例设计模式分为两种
饿汉式,懒汉式
无论哪一种,思想就三步,
0;就一个实例,则不能被实例化,所有构造函数私有的
1:提供一个实例
2:提供一个供外部访问的方法
懒汉式线程不安全,那为什么不安全呢?看代码!!!
假设开始线程0进入,判断instance为空,在将要创建实例时,cpu切换,
线程1又进来了,同样instance为空 创建了实例,这是cpu切换回来到0线程,继续创建实例
可见,经过分析共创建了 两个实例,还谈什么单例。
改进
可以保证线程安全同时又提高了效率。
假设0线程进来,instance为空,进入同步代码块,cpu切换,
线程1进来,instance为空,在同步代码块外,因为此时0正在里面
ok,cup切换,执行创建实例,当1在进入代码块后,此时instace不为空,直接返回instance
当在有线程进来instance不为空,不用执行同步代码块,效率提供了。
结论:一般开发都是饿汉式,因为不管怎么样,都是需要实例,那就不如先加载了(自己理解的),
0 0
- 单例设计模模式——懒汉式为什么线程不安全
- 懒汉式单例设计模式线程不安全
- 懒汉式加载的单例模式怎么个线程不安全?
- 黑马程序员———单例设计模式-懒汉式关于线程安全以及要点
- 设计模式——单例模式(饿汉式、懒汉式)
- 解决单例设计模式中懒汉式线程安全问题
- 解决单例设计模式中懒汉式线程安全问题
- 单例设计模式——懒汉式、饿汉式
- 设计模式——单例模式(懒汉、饿汉)
- Java单例模式——互斥锁-单例之懒汉式的线程安全
- 单例设计模式II (懒汉式)
- 单例设计模式 饿汉式 懒汉式
- 单例设计模式(懒汉式)
- 单例设计模式-饿汉式-懒汉式
- (多线程-单例设计模式-懒汉式)
- 单例设计模式二---懒汉式
- 单例设计模式之懒汉式
- 单例设计模式(饿汗式,懒汉式)
- 自定义View利用缓冲区实现绘画板功能
- Spring Boot 2.0.0参考手册_中英文对照_Part IV_26
- 【ife】任务三十一:表单(三)联动
- MATLAB*2017/1/9
- Servlet的开发介绍
- 单例设计模模式——懒汉式为什么线程不安全
- layout、values和drawable屏幕自适应
- Mysql免安装版配置【图文版和文字版】
- WPF教程(三十六)UpdateSourceTrigger属性
- 多表查询数据库
- Android学习笔记-Android6.0运行时权限(续)
- 解决Android 7.0 (Android N)中 Android Device Monitor(DDMS)的 File Explorer不显示目录树的问题
- 哈理工OJ 1150 相识(排序后枚举)
- 炉石传说爆牌鱼斩杀算法C语言实现