单例模式不单例注意事项
来源:互联网 发布:linux中国 编辑:程序博客网 时间:2024/05/17 00:57
我们一般的单例模式是这样实现的:
在多线程的情况下,如果两个线程同时执行到if(instance==null)的里面,则该单例模式就不再单例了!
publicclassSingletonClass{ privatestaticSingletonClassinstance=null; publicstaticSingletonClassgetInstance(){ if(instance==null){ instance=newSingletonClass();} returninstance; } privateSingletonClass(){ }}
在多线程的情况下,如果两个线程同时执行到if(instance==null)的里面,则该单例模式就不再单例了!
解决方案:
publicclassSingletonClass{ privatestaticSingletonClassinstance=null; publicstaticSingletonClassgetInstance(){ if(instance==null){ synchronized(SingletonClass.class){ if(instance==null){ instance=newSingletonClass(); }} returninstance; } privateSingletonClass(){ }}
采用synchronized,线程锁的方式进行控制,保证只能有一个线程执行new SingletonClass(),这样就保证了单例性质。
0 0
- 单例模式不单例注意事项
- 单例模式不单例
- java单例模式使用及注意事项
- [置顶] PHP单例模式面试注意事项
- Java单例注意事项
- 单例模式的七种写法以及注意事项
- java 单例设计模式与单例内存分析,向上转型注意事项
- 数据库和单例注意事项
- 面向对象不单单就是继承
- word “兼职”-----不单单是文字处理
- 全网营销不单单局限于seo
- 单例、单例模式
- 主要介绍单例模式的一种写法、注意事项、测试、作用。
- 《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项
- 单例模式-多线程单例模式
- 单件模式(单例模式)
- 关于单例的几点注意事项
- 设计模式------单例模式
- 腾讯2012实习生笔试题+答案解析
- JAVA修炼中非常值得一读的文章
- 高仿大众点评源码,附带服务器部分。供新手学习
- 学习经历
- 第九周项目3 输出星号图e
- 单例模式不单例注意事项
- Java容器——JSTL学习笔记
- 百度2011招聘笔试题+答案解析
- Android WebView的用法示例代码
- Windows串口API编程
- HDU2084 数塔 动态规划
- 阿里巴巴2011笔试题+答案解析
- RESTful Request:GET/PUT/DELETE/POST/HEAD/OPTIONS
- Android客户端从服务器端获取json数据并解析的实现代码