当前位置: 首页 > news >正文

域名 空间 网站制作上海营销型网站seo

域名 空间 网站制作,上海营销型网站seo,dede一键更新网站,企业查询系统官网天眼查单例模式 什么是单例模式? 1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。 应用:数据库的连接类,这样就可以确保只创建一次。节省资源。 单例模式代码:涉及懒加载…
单例模式

什么是单例模式?

  • 1、单例类只能有一个实例。
  • 2、单例类必须自己创建自己的唯一实例。
  • 3、单例类必须给所有其他对象提供这一实例。

应用:数据库的连接类,这样就可以确保只创建一次。节省资源。

单例模式代码:涉及懒加载、双重检查锁、volatile防止指令重排。

懒加载:在调用方法的时候才初始化对象。对应的是饿汉模式:private static Singleton singleton=new Singleton();

双检锁: 第一个是指synchronized(Singleton.class){…} 之所以将锁加在这里而不是方法上是因为加在方法上的话,多个线程调用这个方法都要抢锁,而实际上我们只需要保证创建对象时线程安全即可。所以为了更细粒度的锁我们加在了判空前。

第二个是指锁内还写了一个判空条件。这是因为线程A和B都进入了第一个判空条件内,然后这时候A加了锁,开始创建创建对象。结束后B线程也会创建对象。所以就需要再加一个判空条件。

volatile: singleton=new Singleton();其实分为三步:1.给Singleton分配空间。2.初始化对象(调用Singleton的构造方法)3.将singleton这个引用指向刚分配的内存地址。

但如果指令重排按照1,3,2的顺序进行。如果2还没有执行完,这时再来一个线程B发现singleton不为空了,直接return singleton,而我们的构造方法还没执行呢!这时就会出错。

class SingletonLazy {// 使用private防止其他类使用// 使用双重检查锁 必须加上volatile 防止指令重排private volatile static SingletonLazy singletonLazy;// 私有化构造器private SingletonLazy() {};public  static SingletonLazy getInstance() {// 双重检查锁if (singletonLazy == null) {synchronized (SingletonLazy.class) {//双重检查锁if (singletonLazy == null) {singletonLazy = new SingletonLazy();}}}return singletonLazy;}
}
http://www.hyszgw.com/news/70343.html

相关文章:

  • 小型教育网站的开发与建设临清网站开发
  • 拿别的公司名字做网站郑州高新区做网站的公司
  • 大型集团网站建设公司绿色国外网站
  • 网站建设费可以计业务费吗电脑制作网站用哪个软件
  • 做公司官网需要多少钱企业网站优化服务主要围绕哪些要素
  • 忻州网站建设培训大理建设局网站
  • 南京cms建站系统网站建设情况通报
  • 有没有可以做兼职的网站吗网站建设 今晟网络
  • asp技术做网站天元建设集团有限公司东营分公司
  • 手机网站空间申请wordpress 数据库设置
  • 网站优化有哪些技巧建筑培训机构排名前十
  • 建设银行投资网站首页长春做网站公司
  • 网站流量不够怎么办广州网络营销推广培训
  • 北京网站搭建报价wordpress可注册地址
  • 想买个服务器做网站天津和平做网站公司
  • 流量型网站物流外贸是做什么的
  • 西安市建设监理协会网站山东省建设资格中心网站
  • 大连开发区社保网站被执行人名单查询
  • 教做缝纫的网站广州开发区外国语学校
  • canvas做的网站企业如何选择网站
  • 软件库网站源码网络事件营销
  • 全国做膏药的网站有多少家呢宁波制作网站软件
  • 网站制作公司中wordpress雪樱主题破解
  • 云网站建设做网站多长时间
  • 个人网站申请备案富阳招聘网
  • espcms易思企业网站管理系做影视网站挣钱吗
  • 企业网站建设珠海2018年网站建设培训会发言
  • 河南省建设工程造价信息网站网站添加悬浮二维码
  • app与微网站的区别是什么意思深圳保障性住房官网
  • 北京市网站开发公司网站运营及推广