dubbo 扩展单例的保存
2019独角兽企业重金招聘Python工程师标准>>>
dubbo 版本 2.6.2
/*** Find the extension with the given name. If the specified name is not found, then {[@link](https://my.oschina.net/u/393) IllegalStateException}* will be thrown.*/@SuppressWarnings("unchecked")public T getExtension(String name) {if (name == null || name.length() == 0)throw new IllegalArgumentException("Extension name == null");if ("true".equals(name)) {return getDefaultExtension();}Holder<Object> holder = cachedInstances.get(name);if (holder == null) {cachedInstances.putIfAbsent(name, new Holder<Object>());holder = cachedInstances.get(name);}Object instance = holder.get();if (instance == null) {synchronized (holder) {instance = holder.get();if (instance == null) {instance = createExtension(name);holder.set(instance);}}}return (T) instance;}
由于真实的扩展类可能是比较重量级的类,dubbo使用一个轻量级的Holder来避免这些类的重复创建:
cachedInstances.putIfAbsent(name, new Holder<Object>());
转载于:https://my.oschina.net/u/206123/blog/2253281
dubbo 扩展单例的保存相关推荐
- Scala类的定义,主/辅构造器,以及方法中的变量定义,单例对象,伴生对象,Apply方法调用,应用程序对象
1. 类 1.1. 类的定义 package cn.toto.scala.day2/*** 在Scala中,类并不用声明为public类型的.* Scala源文件中可以包含多个类,所有这些类都具有共有 ...
- 单例销毁_【PHP设计模式】单例模式
前言 设计模式是我们开发过程中的重中之重,所以今天小编就来学习设计模式中的单例模式. 单例模式 <?phpclass Singleton { /*** 定义一个静态变量保存已经实例化的对象* * ...
- 单例嵌套 ios_嵌套类型的前5个用例
单例嵌套 ios 前几天,关于reddit进行了有趣的讨论,即静态内部类. 什么时候太多? 首先,让我们回顾一下Java的基本历史知识. Java语言提供了四个级别的嵌套类 ,通过" Jav ...
- java 单例 读写锁_终极锁实战:单JVM锁+分布式锁
目录 1.前言 2.单JVM锁 3.分布式锁 4.总结 =========正文分割线================= 1.前言 锁就像一把钥匙,需要加锁的代码就像一个房间.出现互斥操作的典型场景:多 ...
- java servlet是单例吗_关于java:为什么apache servlet是单例?
本问题已经有最佳答案,请猛点这里访问. HttpServletRequest request; HttpServletResponse response; public void doGet(Http ...
- 《JavaScript高级程序设计(第四版)》红宝书学习笔记(第五章:基本引用类型,原始值包装类型,单例内置对象)
第五章:基本引用类型 引用值(或者对象)是某个特定引用类型的实例.新对象通过使用new操作符后跟一个构造函数(constructor)来创建. 5.1 Date 这里不对Date进行详细深入,仅基于书 ...
- 【转载】:单例设计模式
http://www.dofactory.com/Patterns/PatternSingleton.aspx http://www.cnblogs.com/xun126/archive/2011/0 ...
- java中的class 类的作用_Java中Class和单例类的作用与类成员的理解
Java中Class类的作用与深入理解 在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识.这个信息跟踪着每个对象所属的类.JVM利用运行时信息选择相应的方法执行.而保存 ...
- 单例对象会被jvm的gc时回收吗_设计模式专题02-单例五种创建方式
单例五种创建方式(下一篇:工厂模式) 什么是单例 保证一个类只有一个实例,并且提供一个访问该全局访问点 单例应用场景 1. Windows的Task Manager(任务管理器)就是很典型的单例模式( ...
最新文章
- Xamarin图表开发基础教程(1)
- Linux笔记:vim
- ros(7)自定义service数据
- 工程师软技能3:如何学习
- 玩转Git三剑客01:Git基础
- 计算机本科学报,计算机学报论文
- 从零开始学做微信小程序,看这些就够了!
- php面向对象特性(一)
- Illustrator2020中文版教程,如何在AI中使用蒙版来裁剪内容?
- Mysql 数据库/表 备份 与 还原
- 联想服务器改win7系统教程,联想笔记本Win10改Win7方法分享
- 2011年国家统计局省市代码、城市代码、省份代码表数据
- java ehcache使用_ehcache使用报错
- 17,verilog之for循环
- win10 nginx部署前端项目(静态资源服务器和HTML)
- 网上关于'好人卡'的定义
- 飞机专家调查发现坐飞机 机首、机翼和机尾最安全
- word饼图如何画引导线_#excel表格饼状图制作#如何在饼形图中添加引导线(Excel)...
- 如何更新neovim以及安装指定版本
- 工控电脑触摸显示屏幕监控报警方案-基于WiFi摄像头定时拍照图像识别技术