【学习笔记】单例模式
来源:互联网 发布:u盘如何恢复数据 编辑:程序博客网 时间:2024/05/19 22:03
前言
本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录
Demo1
记得我第一次自己写的情况是直接下面的写法,但是多线程下就不经用了
/** * 缺点多线程下,会出现无法维持单例的情况 */ public class SingletonDemo_1 { private static SingletonDemo_1 mInstance; public static SingletonDemo_1 getInstance(){ if(null == mInstance) { mInstance = new SingletonDemo_1(); } return mInstance; } }
Demo2
这个方法我没用过,我是一步到位到最佳实现方法
/** *虽然解决了线程同步问题,但是每次调用getInstance都需要同步效率大大降低 */ public class SingletonDemo_2 { private static SingletonDemo_2 mInstance; // synchronized 关键字 public static synchronized SingletonDemo_2 getInstance(){ if(null == mInstance) { mInstance = new SingletonDemo_2(); } return mInstance; } }
最佳实例
目前我的项目单例模式都是下面的使用,稳定
public class SingletonDemo { /** * 推荐方法 */ // volatile 双重检查加锁,确保多线程正确处理mInstance初始化 private volatile static SingletonDemo mInstance; public static SingletonDemo getInstance(){ if(null == mInstance) { // 线程同步位置放在这里最合适不过了 synchronized(SingletonDemo.class) { // 进入区块再检查一次如果仍旧为空,才创建 if(null == mInstance) { mInstance = new SingletonDemo(); } } } return mInstance; } public static void main(String[] args) { System.out.println("Hello World!"); }}
阅读全文
0 0
- 学习笔记:单例模式
- 学习 单例模式 笔记
- 单例模式学习笔记
- 单例模式-->学习笔记
- 单例模式学习笔记
- 单例模式学习笔记
- 单例模式学习笔记
- 单例模式学习笔记
- 学习笔记单例模式
- 单例模式学习笔记
- 【学习笔记】单例模式
- 设计模式学习笔记:单例模式
- 设计模式学习笔记-单例模式
- 设计模式学习笔记--单例模式
- 设计模式学习笔记-单例模式
- 设计模式学习笔记-单例模式
- 设计模式学习笔记--单例模式
- 设计模式--单例模式学习笔记
- 阿D下载效验
- codeblocks:使用多个头文件和源文件会遇到的问题
- RMI与RPC的区别
- Chrome中input自动填充问题
- IDEA自动部署WEB项目至Tomcat-原理解析
- 【学习笔记】单例模式
- com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:178) com.alibaba.dubbo.config.Re
- 电话聊天狂人(25 分)
- java之异常处理
- Mac:Abort trap:6
- Skynet基础入门例子详解(3)
- Mybatis之根据用户名称模糊查询用户信息(4)
- 安装php框架---laravel教程
- 基于display:inline-block 的列表布局