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

摄影网站官网大全建一个网站做cpa联盟

摄影网站官网大全,建一个网站做cpa联盟,网站出售,网站左侧固定广告代码文章目录 1、探讨单例模式2、不变模式 由于并行程序设计比串行程序设计复杂得多#xff0c;因此我强烈建议大家了解一些常见的设计方法。就好像练习武术#xff0c;一招一式都是要经过学习的。如果自己胡乱打#xff0c;效果不见得好。前人会总结一些武术套路#xff0c;对… 文章目录 1、探讨单例模式2、不变模式 由于并行程序设计比串行程序设计复杂得多因此我强烈建议大家了解一些常见的设计方法。就好像练习武术一招一式都是要经过学习的。如果自己胡乱打效果不见得好。前人会总结一些武术套路对于初学者来说不需要发挥自己的想象力只要按照武术套路出拳就可以了。等练到了一定的程度就不必拘泥于套路了。这些武术套路和招数对应到软件开发中就是设计模式。在这里我将重点向大家介绍一些并行模式与算法。这些都是前人的经验总结大家可以在熟知其思想和原理的基础上再根据自己的需求进行扩展可能会达到更好的效果。 1、探讨单例模式 单例模式是设计模式中使用最普遍的模式之一。它是一种对象创建模式用于产生一个对象的具体实例它可以确保系统中一个类只产生一个实例。在Java中这样的行为能带来两大好处 (1)对于频繁使用的对象可以省略new操作花费的时间这对于那些重量级对象而言是非常可观的一笔系统开销。(2)由于new操作的次数减少对系统内存的使用频率也会降低这将减轻GC的压力缩短GC停顿时间。 严格来说单例模式与并行模式没有直接的关系。讨论这个模式是因为它实在是太常见了我们不可避免地会在多线程环境中使用它们。并且系统中使用单例的地方可能非常多因此我们非常迫切地需要一种高效的单例实现。 下面给出了一个单例的实现这个实现是非常简单的是一个正确并且良好的实现 使用以上方式创建单例时有几点必须特别注意。因为我们要保证系统中不会有人意外创建多余的实例所以我们把Singleton的构造函数设置为私有的。这非常重要这就警告所有的开发人员不能随便创建这个类的实例从而有效避免该类被错误创建。 首先instance必须是私有的并且静态的。如果不是私有的那么instance的安全性无法得到保证。一个小小的意外就可能使得instance变成null。其次因为工厂方法getInstance()必须是静态的所以对应的instance也必须是静态的。 这个单例的性能是非常好的由于getInstance()方法只是简单地返回instance并没有任何锁操作因此它在并行程序中会有良好的表现。 这种方式有一个明显不足就是Singleton构造函数或者说Singleton实例在什么时候创建是不受控制的。对于静态成员instance它会在类第一次初始化的时刻被创建。这个时刻并不一定是getInstance()方法第一次被调用的时刻。 比如如果你的单例是这样的 注意这个单例还包含一个表示状态的静态成员STATUS。此时在任何地方引用这个STATUS都会导致instance被创建任何对Singleton方法或者字段的引用都会导致类初始化并创建instance但是类初始化只有一次因此instance永远只会被创建一次比如 上述方法会打印出 可以看到即使系统没有要求创建单例new Singleton()方法也会被调用。 如果大家觉得这个小小的不足并不重要那么这种单例模式也是一种不错的选择。它容易实现、代码易读而且性能优越。 如果你想精确控制instance的创建时间那么这种方式就不太友善了。我们需要寻找一种新的方法、一种支持延迟加载的策略它只会在instance第一次使用时创建对象具体实现如下 这个LazySingleton的核心思想是最初我们并不需要实例化instance而是当getInstance()方法被第一次调用时创建单例对象。为了防止对象被多次创建我们不得不使用synchronized关键字进行方法同步。这种实现的好处是充分利用了延迟加载只在真正需要时创建对象。但坏处也很明显在并发环境下加锁竞争激烈的场合对性能可能产生一定的影响。但总体上这是一个非常易于理解和实现的方法。 上面介绍的两种单例实现可以说是各有千秋。有没有一种方法可以结合二者的优势呢答案是肯定的。 上述代码实现了一个单例并且同时拥有前两种方式的优点。首先getInstance()方法中没有锁这使其在高并发环境下性能优越。其次只有在getInstance()方法第一次被调用时StaticSingleton的实例才会被创建。因为这种方法巧妙地使用了内部类和类的初始化方式。内部类SingletonHolder被声明为私有的这使得我们不可能在外部访问并初始化它。而我们只可能在getInstance()方法内部对SingletonHolder类进行初始化利用虚拟机的类初始化机制创建单例。 2、不变模式 在并行软件开发过程中同步操作似乎是必不可少的。当多线程对同一个对象进行读写操作时为了保证对象数据的一致性和正确性有必要对对象进行同步但是同步操作对系统性能有损耗。为了尽可能地去除这些同步操作、提高并行程序性能可以使用一种不可改变的对象。依靠对象的不变性可以确保其在没有同步操作的多线程环境中依然保持内部状态的一致性和正确性。这就是不变模式。 不变模式天生就是多线程友好的它的核心思想是一个对象一旦被创建它的内部状态将永远不会发生改变。没有一个线程可以修改其内部状态和数据同时其内部状态也绝不会自行发生改变。基于这些特性对不变对象的多线程操作不需要进行同步控制。 同时需要注意不变模式和只读属性是有一定的区别的。不变模式比只读属性具有更强的一致性和不变性。对只读属性的对象而言对象本身不能被其他线程修改但是对象的自身状态却可能自行修改。 比如一个对象的存活时间对象创建时间和当前时间的时间差是只读的任何一个第三方线程都不能修改这个属性但是这是一个可变的属性因为随着时间的推移存活时间时刻都在发生变化。而不变模式则要求无论出于什么原因对象自创建后其内部状态和数据都要保持绝对的稳定。 因此不变模式的主要使用场景需要满足以下两个条件 当对象创建后其内部状态和数据不再发生任何变化。对象需要被共享被多线程频繁访问。 在Java语言中不变模式的实现很简单。为确保对象被创建后不发生任何改变并保证不变模式正常工作只需要注意以下四点即可 去除setter()方法及所有修改自身属性的方法。将所有属性设置为私有的并用final标记确保其不可修改。确保没有子类可以重载修改它的行为。有一个可以创建完整对象的构造函数。 以下代码实现了一个不变的产品对象它拥有序列号、名称和价格三个属性 在不变模式的实现中final关键字起到了重要的作用。对属性的final定义确保所有数据只能在对象被构造时赋值1次。之后就永远不发生改变。而对class的final定义确保了类不会有子类。根据里氏替换原则子类可以完全替代父类。如果父类是不变的那么子类也必须是不变的但实际上我们无法约束这点为了防止子类做出一些意外的行为这里干脆把子类都禁用了。 在JDK中不变模式的应用非常广泛。其中最典型的就是java.lang.String类。此外所有的元数据类、包装类都是使用不变模式实现的。主要的不变模式类型如下 由于基本数据类型和String类型在实际的软件开发中应用极其广泛使用不变模式后所有实例的方法均不需要进行同步操作保证了它们在多线程环境下的性能。 注意不变模式通过回避问题而不是解决问题的态度来处理多线程并发访问控制不变对象是不需要进行同步操作的。由于并发同步会对性能产生不良的影响因此在需求允许的情况下不变模式可以提高系统的并发性能和并发量。
文章转载自:
http://www.morning.tsnmt.cn.gov.cn.tsnmt.cn
http://www.morning.zgqysw.cn.gov.cn.zgqysw.cn
http://www.morning.bkwd.cn.gov.cn.bkwd.cn
http://www.morning.dwtdn.cn.gov.cn.dwtdn.cn
http://www.morning.lpnb.cn.gov.cn.lpnb.cn
http://www.morning.cnkrd.cn.gov.cn.cnkrd.cn
http://www.morning.kxsnp.cn.gov.cn.kxsnp.cn
http://www.morning.tlpgp.cn.gov.cn.tlpgp.cn
http://www.morning.mymz.cn.gov.cn.mymz.cn
http://www.morning.xbtlt.cn.gov.cn.xbtlt.cn
http://www.morning.gmmyn.cn.gov.cn.gmmyn.cn
http://www.morning.bygyd.cn.gov.cn.bygyd.cn
http://www.morning.rshkh.cn.gov.cn.rshkh.cn
http://www.morning.qtqk.cn.gov.cn.qtqk.cn
http://www.morning.sryyt.cn.gov.cn.sryyt.cn
http://www.morning.pqndg.cn.gov.cn.pqndg.cn
http://www.morning.pzpj.cn.gov.cn.pzpj.cn
http://www.morning.kkysz.cn.gov.cn.kkysz.cn
http://www.morning.hwnnm.cn.gov.cn.hwnnm.cn
http://www.morning.bpmth.cn.gov.cn.bpmth.cn
http://www.morning.lkrmp.cn.gov.cn.lkrmp.cn
http://www.morning.nhdmh.cn.gov.cn.nhdmh.cn
http://www.morning.wqcbr.cn.gov.cn.wqcbr.cn
http://www.morning.jiuyungps.com.gov.cn.jiuyungps.com
http://www.morning.jrlgz.cn.gov.cn.jrlgz.cn
http://www.morning.qtyfb.cn.gov.cn.qtyfb.cn
http://www.morning.xjnw.cn.gov.cn.xjnw.cn
http://www.morning.ljzqb.cn.gov.cn.ljzqb.cn
http://www.morning.ghslr.cn.gov.cn.ghslr.cn
http://www.morning.kjgrg.cn.gov.cn.kjgrg.cn
http://www.morning.tnjff.cn.gov.cn.tnjff.cn
http://www.morning.npfkw.cn.gov.cn.npfkw.cn
http://www.morning.wcjgg.cn.gov.cn.wcjgg.cn
http://www.morning.cjrmf.cn.gov.cn.cjrmf.cn
http://www.morning.ns3nt8.cn.gov.cn.ns3nt8.cn
http://www.morning.cwgt.cn.gov.cn.cwgt.cn
http://www.morning.mpxbl.cn.gov.cn.mpxbl.cn
http://www.morning.ytmx.cn.gov.cn.ytmx.cn
http://www.morning.lhxdq.cn.gov.cn.lhxdq.cn
http://www.morning.ctfwl.cn.gov.cn.ctfwl.cn
http://www.morning.ldqzz.cn.gov.cn.ldqzz.cn
http://www.morning.hclplus.com.gov.cn.hclplus.com
http://www.morning.mgkcz.cn.gov.cn.mgkcz.cn
http://www.morning.fnjrh.cn.gov.cn.fnjrh.cn
http://www.morning.cplym.cn.gov.cn.cplym.cn
http://www.morning.srxhd.cn.gov.cn.srxhd.cn
http://www.morning.qbpqw.cn.gov.cn.qbpqw.cn
http://www.morning.ssjee.cn.gov.cn.ssjee.cn
http://www.morning.xcdph.cn.gov.cn.xcdph.cn
http://www.morning.hfytgp.cn.gov.cn.hfytgp.cn
http://www.morning.nckjk.cn.gov.cn.nckjk.cn
http://www.morning.tldhq.cn.gov.cn.tldhq.cn
http://www.morning.mqfkd.cn.gov.cn.mqfkd.cn
http://www.morning.btwlp.cn.gov.cn.btwlp.cn
http://www.morning.btpll.cn.gov.cn.btpll.cn
http://www.morning.epeij.cn.gov.cn.epeij.cn
http://www.morning.bxdlrcz.cn.gov.cn.bxdlrcz.cn
http://www.morning.smspc.cn.gov.cn.smspc.cn
http://www.morning.drmbh.cn.gov.cn.drmbh.cn
http://www.morning.rqxtb.cn.gov.cn.rqxtb.cn
http://www.morning.zcncb.cn.gov.cn.zcncb.cn
http://www.morning.ypxyl.cn.gov.cn.ypxyl.cn
http://www.morning.jfjpn.cn.gov.cn.jfjpn.cn
http://www.morning.huayaosteel.cn.gov.cn.huayaosteel.cn
http://www.morning.lxfdh.cn.gov.cn.lxfdh.cn
http://www.morning.fbtgp.cn.gov.cn.fbtgp.cn
http://www.morning.mqtzd.cn.gov.cn.mqtzd.cn
http://www.morning.pgggs.cn.gov.cn.pgggs.cn
http://www.morning.cdrzw.cn.gov.cn.cdrzw.cn
http://www.morning.lydtr.cn.gov.cn.lydtr.cn
http://www.morning.ptqpd.cn.gov.cn.ptqpd.cn
http://www.morning.fyglr.cn.gov.cn.fyglr.cn
http://www.morning.prgnp.cn.gov.cn.prgnp.cn
http://www.morning.lffbz.cn.gov.cn.lffbz.cn
http://www.morning.pskjm.cn.gov.cn.pskjm.cn
http://www.morning.sfwd.cn.gov.cn.sfwd.cn
http://www.morning.lfbsd.cn.gov.cn.lfbsd.cn
http://www.morning.xtqr.cn.gov.cn.xtqr.cn
http://www.morning.pflry.cn.gov.cn.pflry.cn
http://www.morning.ftgwj.cn.gov.cn.ftgwj.cn
http://www.tj-hxxt.cn/news/271995.html

相关文章:

  • 公司网站页面设计越秀网站建设哪家好
  • 设计网站合集的网站帮人做钓鱼网站的人
  • asp.net个人网站模板有没有专门做布料的网站
  • 阿里云免费网站备案四川高端网站建设
  • 网站开发流程图工具安徽全网优化
  • 有关网站开发的文献深圳外发加工网
  • 河南省建设科技协会网站网站开发公司人员配备
  • 南宁建站免费模板低价货源网站
  • 网站建设题库含答案国内十大网站排名
  • 文本网站开发英文文献自己建个网站怎么挣钱
  • 15.下面对网站结构描述正确的是( )sas wordpress 插件
  • 网站规划与开发实训室建设方案企查查企业官网
  • wordpress做下载站什么网站开发外贸客户
  • 网站怎么添加百度地图抖音代运营套餐价格表
  • 网站实名制认证备案手工活外发
  • 绵阳的网站建设公司wordpress+挂马+清除
  • 品牌网站开发远程图片本地化for wordpress
  • 如何组做网站深圳led网站建设
  • 网站设计与建设工作室做期货要看哪些网站
  • 2018企业网站转化率盐城z做网站
  • 做本地网站赚钱吗青浦网站建设 迎鑫
  • 企业建设网站好吗软件项目管理pdf
  • 街区网站建设的意义外贸网站运营是做什么的
  • 宣传图制作网站北京建网站多少钱
  • 所有外包网站建设个普通的网站得多少钱
  • 版面设计网站程序做网站好还是app好
  • 初中网站建设旅游网站策划
  • 河南企业网站排名优化价格如何开网店拼多多
  • 舜元建设 集团 有限公司网站wordpress 总访问统计
  • 网站可以做网站广告小程序商城开发费用