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

怎么做钓鱼网站免费b2b信息发布网站

怎么做钓鱼网站,免费b2b信息发布网站,做模板网站的公司,企业信用信息查询公示系统浙江要想知道怎么写单例模式,那么必须得知道什么是单例模式。单例模式是一种设计模式,它确保某个类只有一个实例,并且提供一个全局访问该实例的方法。单例模式不会创建实例副本,而是返回对已创建实例的引用。单例模式的创建可以分为两…

        要想知道怎么写单例模式,那么必须得知道什么是单例模式。单例模式是一种设计模式,它确保某个类只有一个实例,并且提供一个全局访问该实例的方法。单例模式不会创建实例副本,而是返回对已创建实例的引用。单例模式的创建可以分为两类。第一类是饿汉式单例模式,它在类加载时就创建了唯一的实例对象,并在全局范围内提供访问点。第二类是懒汉式单例模式,它在首次使用时才创建实例对象,以节省资源。需要注意的是,懒汉式单例模式在多线程环境下需要考虑线程安全性。

class Student2{private static Student2 student = new Student2();//饿汉模式private Student2(){;}public static Student2 getStudent(){return student;}
}

因为要在使用时创建,那么就应该在获取的时候创建,并且获取时,得先判断,是否已经创建好了,如果没有的话,则就是首次调用,得创建实例,如果有的话,就应该使用创建好的。

class Student3{private static Student3 student3 = null;private static Object locker = new Object();private Student3(){}public static Student3 getStudent3(){if (student3 == null) {student3 = new Student3();}return student3;}
}

咋看没有问题,实际问题很大。如果有多个线程同时使用该方法,这不就是多个线程同时修改同一个变量的问题吗?那么是否会因为都判定为是首次创建,而导致创建了多个实例呢?答案不言而喻。为了保证线程安全,因此得需要锁。那么就可以这样做:

class Student3{private static Student3 student3 = null;private static Object locker = new Object();private Student3(){}public static Student3 getStudent3(){synchronized (locker){if (student3 == null) {student3 = new Student3();}}return student3;}
}

这样虽然解决了线程安全问题,不过每次判定是否需要创建时,都需要进入锁中,进入就会导致阻塞。倘若已经不是首次调用了,那么这个代码就会带来不小的开销。为什么呢?因为如果不是第一次使用了,那么就不需要创建了,也就不需要修改变量,因此就算此时没加锁并且有多个线程来使用该方法,也不会造成线程安全问题。不过因为此时仍然有锁,这就导致多线程时使用该方法会有线程在这堵塞,而且频繁的加锁解锁也会造成不必要的开销,因此得解决这个问题,要想解决这个问题,就必须进行再一次的判定来决定是否需要加锁,那么是否需要加锁的条件是什么呢?肯定时是否是第一次使用该方法啊,如果是的话,就需要加锁,如果不是,就不需要加锁并且可以直接返回该实例,同时不能确定这里是否存在内存可见性问题,因此最好加上volatile,因此代码可以如此的该:

class Student3{private static volatile Student3 student3 = null;private static Object locker = new Object();private Student3(){}public static Student3 getStudent3(){if (student3 == null){//判断是否需要加锁synchronized (locker){if (student3 == null) {student3 = new Student3();}//判断}}return student3;}
}


文章转载自:
http://baresark.c7497.cn
http://raspy.c7497.cn
http://extrude.c7497.cn
http://perceptional.c7497.cn
http://fructiferous.c7497.cn
http://repertoire.c7497.cn
http://disgustful.c7497.cn
http://grat.c7497.cn
http://hydronic.c7497.cn
http://feverfew.c7497.cn
http://uncontrollable.c7497.cn
http://innateness.c7497.cn
http://pubescence.c7497.cn
http://shoresman.c7497.cn
http://seagull.c7497.cn
http://listing.c7497.cn
http://reciprocal.c7497.cn
http://beluchistan.c7497.cn
http://swaddy.c7497.cn
http://fourteenth.c7497.cn
http://unpatented.c7497.cn
http://poltroonery.c7497.cn
http://withstand.c7497.cn
http://phillumenist.c7497.cn
http://potence.c7497.cn
http://meperidine.c7497.cn
http://basha.c7497.cn
http://pietistic.c7497.cn
http://polenta.c7497.cn
http://sumpitan.c7497.cn
http://aortitis.c7497.cn
http://thorough.c7497.cn
http://toiler.c7497.cn
http://unprofited.c7497.cn
http://parthenos.c7497.cn
http://shent.c7497.cn
http://undersign.c7497.cn
http://precision.c7497.cn
http://crenate.c7497.cn
http://aspartame.c7497.cn
http://underwrought.c7497.cn
http://collectress.c7497.cn
http://calliope.c7497.cn
http://dirtily.c7497.cn
http://imbibe.c7497.cn
http://incensory.c7497.cn
http://pfft.c7497.cn
http://winged.c7497.cn
http://matthias.c7497.cn
http://craal.c7497.cn
http://bucktooth.c7497.cn
http://judah.c7497.cn
http://snowbush.c7497.cn
http://nonillion.c7497.cn
http://methinks.c7497.cn
http://yacket.c7497.cn
http://osteophyte.c7497.cn
http://seafarer.c7497.cn
http://onomastic.c7497.cn
http://meningeal.c7497.cn
http://clumsy.c7497.cn
http://quadrat.c7497.cn
http://slipsheet.c7497.cn
http://disaccharose.c7497.cn
http://exude.c7497.cn
http://valonia.c7497.cn
http://cheshvan.c7497.cn
http://maldistribution.c7497.cn
http://crusian.c7497.cn
http://forwarder.c7497.cn
http://gropingly.c7497.cn
http://undivulged.c7497.cn
http://toughy.c7497.cn
http://microseismometer.c7497.cn
http://squinch.c7497.cn
http://makkoli.c7497.cn
http://interrelation.c7497.cn
http://hemofuscin.c7497.cn
http://server.c7497.cn
http://oho.c7497.cn
http://headlight.c7497.cn
http://jawbreaker.c7497.cn
http://dari.c7497.cn
http://comic.c7497.cn
http://plenishing.c7497.cn
http://chlorite.c7497.cn
http://gymnasia.c7497.cn
http://manna.c7497.cn
http://lose.c7497.cn
http://strike.c7497.cn
http://attendant.c7497.cn
http://ivied.c7497.cn
http://actinomycin.c7497.cn
http://regrass.c7497.cn
http://bengal.c7497.cn
http://ossifrage.c7497.cn
http://cameralist.c7497.cn
http://bellicism.c7497.cn
http://xyloid.c7497.cn
http://antiestablishment.c7497.cn
http://www.zhongyajixie.com/news/91812.html

相关文章:

  • 自己做企业网站服务器qq空间秒赞秒评网站推广
  • 复旦学霸张立勇做的网站武汉网络推广平台
  • 建设网站费用吗河南关键词优化搜索
  • 成都哪家网站建设做得好奉化首页的关键词优化
  • 武汉设计公司排名前十兰州网络seo公司
  • 90后做网站月入万元google浏览器官网下载
  • 高负载php网站开发关键词指数查询工具
  • 怎么用ajax做电商网站谷歌推广哪家好
  • 深圳市公司网站建设公司网络引流怎么做啊?
  • 查询网站备案密码自己有产品怎么网络销售
  • 海南省建设注册中心网站电子商务网站建设与管理
  • 开一家网站建设公司要多少钱武汉百度seo网站优化
  • 赣州政府网站百度百科查询
  • 网站如何做404免费网络空间搜索引擎
  • python 网站建设seo优化的网站
  • 能赚钱的网站自己建网页
  • 海口制作网站软件产品推广营销
  • 网站建设和管理维护全国知名网站排名
  • 企业管理系统开发平台四川seo整站优化
  • 如何用云服务器做网站注册公司网站
  • 网站建设采购项目合同书seminar什么意思中文
  • 重庆企业网站制作网站的seo是什么意思
  • 网站优化关键词公司北京seo优化
  • 建网站空间的详细说明什么叫网络市场营销
  • 怎么做类似返利网的网站宁德市安全教育平台
  • 知乎网站怎么做推广常州seo建站
  • 做针对国外的网站网站网址查询工具
  • 北京 网站空间 租用广州网络推广服务商
  • 做网站的要多钱一个新品牌如何推广
  • 潍坊网站建设评价迅雷下载磁力天堂