Java之线程安全的单例设计模式
来源:互联网 发布:视频一对一聊天软件 编辑:程序博客网 时间:2024/06/05 17:31
线程安全的单例设计模式有如下几种方法:
1.利用静态内部类
public class Singleton {// 私有化构造方法private Singleton() {}// 静态内部类在使用时才会加载,且只加载一次private static class T {private static Singleton instance = new Singleton();}// 返回实例public Singleton getInstance() {return T.instance;}}
2.双重检查锁(Double Checked Locking)-使用volatile关键字
public class Singleton {//注意,要用volatile关键字private static volatile Singleton instance = null;// 私有化构造方法private Singleton() {}public Singleton getInstance() {if(instance == null){synchronized(Singleton.class){instance = new Singleton(); //注意,此步骤并非原子操作(由于存在指令重排序)}}return instance;}}
3.不使用volatile的双重检查
public class Singleton {private static Singleton instance = null;// 私有化构造方法private Singleton() {}public synchronized Singleton getInstance() {if (instance == null) {instance = new Singleton(); }return instance;}}
总结:个人认为方法一利用静态内部类为线程安全单例模式最佳答案,因为没有涉及到锁的问题,使用锁或多或少会涉及到性能的问题
阅读全文
0 0
- Java之线程安全的单例设计模式
- Java之线程安全的单例模式
- 【Java多线程】之八:单例模式的线程安全
- 设计模式之单例模式(线程安全)
- 设计模式之单例模式(线程安全)
- 设计模式之单例模式(线程安全)
- 设计模式之单例模式(线程安全)
- 设计模式之单例模式(线程安全)
- 设计模式之单例模式(线程安全)
- 设计模式之单例模式(线程安全)
- 23种设计模式之单例模式(线程安全)
- 设计模式之单例模式(线程安全)
- 设计模式之单例模式(线程安全)
- 设计模式之单例模式&线程安全
- 设计模式之单例模式(线程安全)
- 设计模式之单例模式(线程安全)
- 设计模式之单例模式(线程安全)
- java线程安全的单例模式
- 初识hibernate
- Ubuntu Windows双系统引导的问题
- js之script属性async与defer
- 一个程序员该有的自我修养
- android第三方框架 xlistview 的使用
- Java之线程安全的单例设计模式
- 整理了部分数据分析用图表
- [BZOJ]1601 灌水 最小生成树
- python 字符串和编码
- poj2553 求汇点
- Mybatis 使用count
- Andrew NG 机器学习 练习4-Neural Networks Learning
- java图片色阶调整、亮度调整
- fail树(bzoj 3172: [Tjoi2013]单词)