线程安全的单例模式
来源:互联网 发布:macbook怎么下载软件 编辑:程序博客网 时间:2024/06/16 03:11
单例模式是一种比较简单的模式,确保某一个类在内存中只有一个实例,而且自行实例化并向整个系统提供这个实例,也就是说在这个系统中这个类只能实例化一个对象。比如web页面的计数器。
线程安全的单例模式
/*这是先初始化对象,称为饿汉式Single类一进内存,就已经生成对象线程安全的*/class Single {private static Single single=new Single();private Single(){}public static Single getInstance(){return single;} public void doSomething(){ }}线程不安全的单例模式
/*这是延迟加载对象,称为懒汉式Single类进内存,对象还没有存在,只是调用getInstance()方法时候才建立对象。线程不安全的*/class Single {private static Single single=null; private Single() { }public static Single getInstance(){if(single==null) {single=new Single();} return single;}public void doSomething(){}}
使用synchronized关键字使得线程安全,这样写会使得程序的执行效率变低,因为每一次获取实例时候都会判断是否有锁然后加锁~
class Single {private static Single single=null; private Single() {}//synchronized关键字用于线程同步,加锁 public static Single synchronized getInstance(){ if(single==null) {single=new Single();} return single;} public void doSomething(){}}使用两次判断,避免每次getInstance()方法加锁,所消耗的资源。
class Single { private static Single single=null; private Single() { } //synchronized关键字用于线程同步 public static Single getInstance() { if(single==null) { synchronized(Single.class) { if(single==null) { single=new Single(); } } } return single; } public void doSomething() { }}
0 0
- 线程安全的单例模式
- 线程安全的单例模式
- 线程安全的单例模式
- 线程安全的单例模式
- Volatile 线程安全的单例模式
- 线程安全的单例模式
- 基于线程安全的单例模式
- 线程安全的单例模式
- 单例模式的线程安全
- 线程安全的单例模式
- 线程安全的单例模式
- 线程安全的单例模式
- 线程安全的单例模式
- 线程安全的单例模式
- 线程安全的单例模式 [老生常谈]
- java线程安全的单例模式
- 线程安全的单例模式
- + 线程安全的单例模式
- 推荐一些C#相关的网站、资源和书籍
- Cg two-sided per-pixel lighting
- 第六周项目5-后缀表达式
- ubuntu亮度调节
- Python3利用PyMySql连接MySQL数据库
- 线程安全的单例模式
- Cocos2d中update与fixedUpdate的区别(一)
- storm 开发系列二 Clojue版本
- Java常见面试题
- C语言字节对齐问题详解(zz)
- Linux下使用CPAN进行Perl模块的安装
- 冲压与锻造的区别
- Core Animation
- 第六周项目3 括号的匹配