单例模式最优方案
来源:互联网 发布:搜客软件 编辑:程序博客网 时间:2024/06/06 00:22
/**
* 方法四
* 单例模式最优方案
* 线程安全 并且效率高
*
*/
public class SingletonTest {
// 定义一个私有构造方法
private SingletonTest() {
}
//定义一个静态私有变量(不初始化,不使用final关键字,使用volatile保证了多线程访问时instance变量的可见性,避免了instance初始化时其他变量属性还没赋值完时,被另外线程调用)
private static volatile SingletonTest instance;
//定义一个共有的静态方法,返回该类型实例
public static SingletonTest getIstance() {
// 对象实例化时与否判断(不使用同步代码块,instance不等于null时,直接返回对象,提高运行效率)
if (instance == null) {
//同步代码块(对象未初始化时,使用同步代码块,保证多线程访问时对象在第一次创建后,不再重复被创建)
synchronized (SingletonTest.class) {
//未初始化,则初始instance变量
if (instance == null) {
instance = new SingletonTest();
}
}
}
return instance;
}
}
* 方法四
* 单例模式最优方案
* 线程安全 并且效率高
*
*/
public class SingletonTest {
// 定义一个私有构造方法
private SingletonTest() {
}
//定义一个静态私有变量(不初始化,不使用final关键字,使用volatile保证了多线程访问时instance变量的可见性,避免了instance初始化时其他变量属性还没赋值完时,被另外线程调用)
private static volatile SingletonTest instance;
//定义一个共有的静态方法,返回该类型实例
public static SingletonTest getIstance() {
// 对象实例化时与否判断(不使用同步代码块,instance不等于null时,直接返回对象,提高运行效率)
if (instance == null) {
//同步代码块(对象未初始化时,使用同步代码块,保证多线程访问时对象在第一次创建后,不再重复被创建)
synchronized (SingletonTest.class) {
//未初始化,则初始instance变量
if (instance == null) {
instance = new SingletonTest();
}
}
}
return instance;
}
}
阅读全文
0 0
- 单例模式最优方案
- 笔试Java实现单例设计模式(最优方案)
- 最优单例模式
- 备忘:最优单例模式
- java 最优单例模式
- C++ Singleton (单例) 模式最优
- C++ Singleton (单例) 模式最优实现
- C++ Singleton (单例) 模式最优实现
- C++ Singleton (单例) 模式最优实现
- C++ Singleton (单例) 模式最优实现
- C++ Singleton (单例) 模式最优实现
- C++ Singleton (单例) 模式最优
- 动手写最优的单例模式
- C++ Singleton (单例) 模式最优实现
- C++ Singleton (单例) 模式最优实现
- C++ Singleton (单例) 模式最优实现
- (zt)C++ Singleton (单例) 模式最优实现
- Java单例模式——(枚举最优)
- ZTree+JAVA写一棵同步树
- 调用微信接口发送消息
- jzoj 模拟赛总结(2017.07.14)
- 为什么心跳包(HeartBeat)是必须的?
- AndroidStudio打包apk,安装失败,提示应用未安装解决
- 单例模式最优方案
- Kotlin 语法的简单介绍
- scala 传名调用call-by-name
- 【社交系统研发日记】如何在 Laravel 中 “规范” 的开发验证码发送功能 !
- CentOS 7 关闭图形界面
- Laravel基础-Illuminate所在位置
- Spring家族学习
- 最少钱币数梦幻王国
- java中会存在内存泄漏吗