singleton 单例模式
来源:互联网 发布:淘宝网中年秋冬连衣裙 编辑:程序博客网 时间:2024/04/27 15:52
单线程中的单例模式:
public class Sinleton{
private volatile static Singleton instance;
private Singleton() {}
public static Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}
在多线程中使用单例模式:
public class Sinleton{
private volatile static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance(){ //只需要把getInstance方法编程同步的就可以了,可是这样
if(instance == null){ //会降低性能,所以可以使用下面的双重检查锁
instance = new Singleton();
}
return instance;
}
}
一个合格的单例模式
利用双重检查加锁:当创建instance实例为空时需要加锁,当instance创建出来之后则无需加锁,这样做的目可以大大的减小消耗.整个过程只加了一次锁.(因为同步锁非常耗时)
public class Sinleton{
private volatile static Singleton instance;
private Singleton() {}
public static Singleton getInstance(){
if(instance == null){
synchronized(Singleton.class){
if(instance == null){
instance = new Singleton();
}
}
}
return instance;
}
}
volatile关键字
XBYTE[2]=0x55;
XBYTE[2]=0x56;
XBYTE[2]=0x57;
XBYTE[2]=0x58;
- 单例(Singleton)模式
- singleton 单例模式
- Singleton单例模式
- Singleton(单例)模式
- Singleton 单例模式
- 单例模式(Singleton)
- 单例模式(Singleton)
- Singleton(单例)模式
- Singleton(单例)模式
- 单例模式(Singleton)
- 单例模式(Singleton)
- 单例模式Singleton
- Singleton (单例模式)
- Singleton单例模式
- 单例模式----SingleTon
- 单例模式-singleton
- 单例模式(Singleton)
- Singleton(单例模式)
- Bootstrap 学习之 (十三) ------ 巨幕 ,页头,缩略图
- linuxmint 和raspberry下安装编译pjsip
- ARM-ELF文件格式与GNU ARM Linker机制
- TCP Socket编程
- stm32f105外部晶振由8MHz调整到12MHz库的修改
- singleton 单例模式
- lucene.NET详细使用与优化详解
- Spring中Bean的生成过程
- Web Service Load Test Strategies
- Android--通知之Notification
- C3P0连接池配置和实现详解
- netty 是什么、能做什么?
- c++ 快速排序
- json解析