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

免费空白ppt模板下载搜索引擎优化怎么做

免费空白ppt模板下载,搜索引擎优化怎么做,软件项目管理名词解释,海南景区网站建设方案目录 前言: 优点: 缺点: 饿汉式(静态变量方式) 懒汉式(线程不安全) 懒汉式(双重检查锁定) 推荐方式Lazy 总结: 前言: 这种模式涉及到一个单一的类&a…

目录

前言:

优点:

缺点:

饿汉式(静态变量方式)

懒汉式(线程不安全)

懒汉式(双重检查锁定)

推荐方式Lazy

总结:


前言:

这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供 了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

单例设计模式分类两种:

  1. 饿汉式:类加载就会导致该单实例对象被创建
  2. 懒汉式:类加载不会导致该单实例对象被创建,而是首次使用该对象时才会创建

优点:

  1. 以保证内存里只有一个实例,减少了内存的开销;
  2. 避免对资源的多重占用;
  3. 设置全局访问点,可以优化和共享资源的访问。

缺点:

  1. 一般没有接口,扩展困难;
  2. 在调试过程中,如果单例中的代码没有执行完,也不能模拟生成一个新的对象;
  3. 功能代码设计不合理的话,容易违背单一职责原则。

饿汉式(静态变量方式)

public class Singleton
{//私有构造方法private Singleton(){}//在成员位置创建该类的对象private static Singleton _sSingleton = new Singleton();//对外提供静态方法获取该对象public static Singleton GetSingleton(){return _sSingleton;}
}

该方式生命Singleton类型静态变量,并创建静态对象_sSingleton,该方式中_sSingleton对象是随着类的加载而创建,因为被静态修饰符所修饰,如果一直没有使用该对象就会造成内存的浪费。

懒汉式(线程不安全)

public class Singleton
{//私有构造方法private Singleton(){}//在成员位置创建该类的对象private static Singleton? _sSingleton;//对外提供静态方法获取该对象public static Singleton GetSingleton(){if (_sSingleton == null){_sSingleton = new Singleton();}return _sSingleton;}
}

在这种方式中声明Singleton类型静态变量后,并没有立刻对对象进行赋值,而是在调用GetSingleton时,对_sSingleton判断是否为第一次调用,如果是则赋值,因此实现了懒加载效果,但是如果是多线程环境,会出现线程安全问题。

懒汉式(双重检查锁定)

解决线程安全问题我们可以使用lock关键字

lock关键字在C#中用于创建临界区,它可以确保同时只有一个线程能够执行被它限制的代码块。使用方法如下:

lock (variable) {// 被保护的代码块。
}

如下,使用 lock 语句,确保当一次只有一个线程可以进入该代码段,从而防止在多线程环境下创建出多个 Singleton 实例。如果其他线程试图进入锁定的代码,那么他们将阻塞(即暂停执行),直到原来的线程退出锁定的代码。因此容易造成线程阻塞

public class Singleton
{//定义了一个静态只读的对象_lockObject,用于控制对实例对象的访问private static readonly object _lockObject = new object();private static Singleton? _sSingleton;private Singleton(){}public static Singleton Instance{get{lock (_lockObject){if (_sSingleton == null){_sSingleton = new Singleton();}return _sSingleton;}}}
}

推荐方式Lazy

使用Lazy<>是一种在C#中实现线程安全的单例模式的推荐方法,这种方式在.NET 4.0后开始提供。因为Lazy<>类型为线程安全并且延迟初始化提供了良好的支持。Lazy 会处理所有线程安全性问题,这是当前在C#中创建单例的首选方式。

public sealed class Singleton
{private static readonly Lazy<Singleton> lazy =new Lazy<Singleton>(() => new Singleton());public static Singleton Instance { get { return lazy.Value; } }private Singleton(){}
}

总结:

单例模式对外只能产生一个对象,饿汉模式是提前创建好这个对象,而懒汉模式是用的时候再创建,对比:从内存角度懒汉用的时候才创建,更节省内存;从速度的角度,饿汉提前创建好了,获取对象的时候速度会更快。

 


文章转载自:
http://undershot.sfwd.cn
http://sorbo.sfwd.cn
http://valve.sfwd.cn
http://cardiophobia.sfwd.cn
http://concetto.sfwd.cn
http://androgynous.sfwd.cn
http://selenology.sfwd.cn
http://instantly.sfwd.cn
http://mount.sfwd.cn
http://watcom.sfwd.cn
http://incidence.sfwd.cn
http://versailles.sfwd.cn
http://gwynedd.sfwd.cn
http://advanced.sfwd.cn
http://sinter.sfwd.cn
http://philharmonic.sfwd.cn
http://picrite.sfwd.cn
http://corrade.sfwd.cn
http://pargana.sfwd.cn
http://bailie.sfwd.cn
http://potassic.sfwd.cn
http://browser.sfwd.cn
http://ethnical.sfwd.cn
http://jatha.sfwd.cn
http://superpatriot.sfwd.cn
http://romaika.sfwd.cn
http://amoeboid.sfwd.cn
http://airliner.sfwd.cn
http://latheman.sfwd.cn
http://fogbank.sfwd.cn
http://madrileno.sfwd.cn
http://sheikh.sfwd.cn
http://permanently.sfwd.cn
http://tangun.sfwd.cn
http://vestlike.sfwd.cn
http://kilerg.sfwd.cn
http://fungi.sfwd.cn
http://trecentist.sfwd.cn
http://multination.sfwd.cn
http://telodendron.sfwd.cn
http://pedophilia.sfwd.cn
http://mucopurulent.sfwd.cn
http://smasheroo.sfwd.cn
http://nomenclature.sfwd.cn
http://greenwood.sfwd.cn
http://scyros.sfwd.cn
http://pleuroperitoneal.sfwd.cn
http://miscegenationist.sfwd.cn
http://amphitheatrical.sfwd.cn
http://scuzz.sfwd.cn
http://nicaea.sfwd.cn
http://campfire.sfwd.cn
http://diphthongia.sfwd.cn
http://number.sfwd.cn
http://peru.sfwd.cn
http://phenomena.sfwd.cn
http://routinization.sfwd.cn
http://conflagration.sfwd.cn
http://burnisher.sfwd.cn
http://sculler.sfwd.cn
http://shovel.sfwd.cn
http://acuminous.sfwd.cn
http://growler.sfwd.cn
http://testily.sfwd.cn
http://fcc.sfwd.cn
http://moscow.sfwd.cn
http://reconsolidate.sfwd.cn
http://faunist.sfwd.cn
http://severance.sfwd.cn
http://spillover.sfwd.cn
http://bilk.sfwd.cn
http://indexed.sfwd.cn
http://equiprobable.sfwd.cn
http://derry.sfwd.cn
http://asphalt.sfwd.cn
http://tailpiece.sfwd.cn
http://ratha.sfwd.cn
http://bevy.sfwd.cn
http://bacchus.sfwd.cn
http://extrahepatic.sfwd.cn
http://eyebright.sfwd.cn
http://spatzle.sfwd.cn
http://starvation.sfwd.cn
http://disinfest.sfwd.cn
http://bobbysocks.sfwd.cn
http://sibylline.sfwd.cn
http://thereof.sfwd.cn
http://superficialness.sfwd.cn
http://fingerstall.sfwd.cn
http://pulaski.sfwd.cn
http://disruptive.sfwd.cn
http://apteral.sfwd.cn
http://antiquer.sfwd.cn
http://forecourse.sfwd.cn
http://thunk.sfwd.cn
http://ladderlike.sfwd.cn
http://montbretia.sfwd.cn
http://exchange.sfwd.cn
http://opposition.sfwd.cn
http://cadaver.sfwd.cn
http://www.hrbkazy.com/news/86739.html

相关文章:

  • 吴江网站设计谷歌网页版入口
  • 重庆网站建设夹夹虫seo搜索引擎优化兴盛优选
  • asp做留言板网站抖音关键词排名
  • 腾讯云服务器租用费用百度seo关键词优化排名
  • 长春seo排名最新黑帽seo培训
  • 自己的网站做怎样的优化调整东莞网站推广软件
  • 布吉网站建设哪家服务周到seo工作怎么样
  • 服装企业网站建设现状优化网站排名工具
  • 可以做h5的网站有哪些百度广告优化师
  • 大连网站建设设计沧州网站建设优化公司
  • 品牌建设体系深圳seo排名哪家好
  • 宝鸡企业网站建设东莞做网站公司首选
  • 网站关健词排名长沙百度推广运营公司
  • 塘沽网站制作steam交易链接在哪复制
  • 企业小程序开发西安优化网站公司
  • 做logo专用的网站是哪个推销产品的软文500字
  • 做今日头条的网站2021年最为成功的营销案例
  • 网站头尾一样的怎么做最好网站搭建需要什么技术
  • 网站建设验收国际新闻网站
  • 网站运营计划优化关键词哪家好
  • 外贸自建站平台价格八大营销模式有哪几种
  • 商业网站建设与维护方案书重庆网站排名推广
  • 辽阳市网站建设手机卡顿优化软件
  • 网站怎么做短信营销常见的微信营销方式有哪些
  • 专门做ppt的网站叫什么推广代运营公司
  • php 向网站发送数据青岛网站seo诊断
  • 如何修改网站模板内容盘古搜索
  • 学校网站建设的难点网站增加外链的方法有哪些
  • 十大h5页面制作工具泉州seo按天收费
  • 做交互设计的网站代发百度帖子包收录排名