单例模式性能问题解决方案
来源:互联网 发布:手机屏幕测试软件 编辑:程序博客网 时间:2024/06/05 05:04
在单例模式中,遇到多线程总要考虑一个性能问题,下面的代码是double-checked locking设计实现单例模式。先判断,如果创建的对象是null,就改加同步锁,然后再判断。这样避免了多线程下的重复创建对象,也解决了整体加同步锁倒是性能的缺陷问题.在JDK 5之后,Java使用了新的内存模型。volatile关键字有了明确的语义。
在JDK1.5之前,volatile是个关键字,但是并没有明确的规定其用途——被volatile修饰的写变量不能和
之前的读写代码调整(控制内存),读变量不能和之后的读写代码调整!因此,只要我们简单的把instance加
上volatile关键字就可以了。来源于论坛:http://bbs.csdn.net/topics/391840031
public class SingletonClass { private volatile static SingletonClass instance = null; public static SingletonClass getInstance() { if (instance == null) { synchronized (SingletonClass.class) { if (instance == null) { instance = new SingletonClass(); } } } return instance; } private SingletonClass() { } }
0 0
- 单例模式性能问题解决方案
- 单例模式最优方案
- 高性能单例模式
- 单例模式(对象性能)
- 提高CPU性能问题解决方案
- 单例模式与双重检查方案
- Java单例模式的实现方案
- json包含单双引号问题解决方案
- JAVA-单例模式之性能探究
- 单例模式_java程序性能优化
- 压力测试tps性能下降问题解决方案
- 压力测试tps性能下降问题解决方案
- Redis命令之HGetAll性能问题解决方案
- 单例模式多线程下可行的方案
- 笔试Java实现单例设计模式(最优方案)
- Java性能优化之设计模式-单例模式
- sqlserver 混合模式登陆问题解决方案
- Android中正确使用单例模式及单例模式下的性能处理
- 编写守护进程的实例
- ftp工具
- 原型模式(对象创建)
- rootViewController 获取真的如你想的那么简单吗?
- 手机视频硬解码和软解码的区别
- 单例模式性能问题解决方案
- Java静态代理和动态代理
- 学习计划
- 解决方案 Eclipse Java Error opening registry key
- 【NOI2005】维护数列(BSOI2246)
- mapreduce的shuffle,partition,combine
- 责任链模式(数据结构)
- HDU-5795 A Simple Nim(SG函数打表找规律)
- TCP/IP 相关帧头格式图