单例模式
来源:互联网 发布:江苏省网络协会 编辑:程序博客网 时间:2024/05/11 20:52
单例模式和线程安全
单例模式有两种方式:饿汉式和懒汉式。
饿汉式代码如下:
package com.neutron.singleten;/** * 饿汉式单例模式 * 此模式线程安全 * @author zhanght * */public class Singleten {private static final Singleten siglenten = new Singleten();private Singleten() {}public static Singleten getInstance(){return siglenten;}}懒汉式代码如下:
package com.neutron.singleten;/** * 懒汉式单例模式 * 存在线程安全问题 * @author zhanght * */public class SingletenLazy {private static SingletenLazy lazy = null;private SingletenLazy(){}public static SingletenLazy getInstance(){/*双重否定判断可以提高运行效率*/if (lazy == null) {synchronized(SingletenLazy.class) {if (lazy == null) {lazy = new SingletenLazy();}}}return lazy;}}
懒汉式和饿汉式比较:
懒汉式存在线程安全问题,使用锁可能导致运行效率变慢,延迟加载所需要的对象;
饿汉式不存在线程安全问题,当不使用的时候单例对象依旧存在。
0 0
- 单例、单例模式
- 单例模式-多线程单例模式
- 单件模式(单例模式)
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- PHP模式-单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 单例模式(单子模式)
- 设计模式-单例模式
- [设计模式] 单例模式
- Leetcode - Happy Number
- CSS padding margin border属性详解
- hdu 4135_Co-prime(容斥原理)
- Shell:环境变量
- MediaStore与Media.EXTERNAL_CONTENT_URI
- 单例模式
- 第三方服务器Bmob实现数据存储
- 微信支付:“当前页面的URL未注册”
- quick-cocos2dx 中的cc({})
- bzoj 3295: [Cqoi2011]动态逆序对 【cdq分治】
- online_judge_1524
- 地图之CLLocationManager的使用
- UVA 684 (矩阵行列式)
- 获取主机名和IP