单例模式
来源:互联网 发布:linux 搜索文件 编辑:程序博客网 时间:2024/06/05 04:04
单例模式下饿汉模式效率最好
饿汉模式
class Single
{
private static final Single s=new Single();
private Single(){}
public static Single getInstance()
{
return s;
}
}
懒汉式 延迟加载实例的单列模式
class Single
{
private static Single s=null;
private Single(){}//构造函数是私有的,只能在本类中实例化该类。
public static Single getInstance()//类外面通过调用该类的静态方法实例化该类
{//这种模式目的是只能实例化类的一个对象,不能实例化多个对象。
//但是当多线程对其调用时,可能会在进入f(s==null) 后线程释放CPU,另一个线程进入仍然对 f(s==null)的判断为真,那么会导致再次实例化对象,使得S指向另个一个空间,因为这里类的实例化对象是属于类的, static Single s引发更改错误。
可以getInstance()加上同步,但是这样会找出效率低效,因为多线程调用时每次都要判断锁。
if(s==null)
s=new Single();
return s;
}
}
强化懒汉式
class Single
{
private static Single s=null;
private Single(){}
public static Single getInstance()
{
if(s==null)
{
synchronized(Single.class)//这里方法是静态方法,不能使用对象this锁,只能使用类锁
{
if(s==null)
s=new Single();
}
}
return s;
}
}
0 0
- 单例、单例模式
- 单例模式-多线程单例模式
- 单件模式(单例模式)
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- PHP模式-单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 单例模式(单子模式)
- 设计模式-单例模式
- [设计模式] 单例模式
- 走迷宫
- 线程池基础类_CompletionService(JDK1.8)
- POJ2236Wireless Network(并查集模板)
- java 大数加减乘除
- js正则
- 单例模式
- JavaWeb学习总结——文件上传和下载
- Spring学习-组件
- PTA 数据结构与算法题目集(中文)5-5 堆中的路径 (25分)
- 网络安全
- 数据库 应用子句
- 当心僵尸:过时Linux内核的安全风险
- 自己随意乱写保存着看!
- css练习2