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

网络建设需求seo技术代理

网络建设需求,seo技术代理,手机网站如何做外链,专科最吃香的十大专业要想知道怎么写单例模式,那么必须得知道什么是单例模式。单例模式是一种设计模式,它确保某个类只有一个实例,并且提供一个全局访问该实例的方法。单例模式不会创建实例副本,而是返回对已创建实例的引用。单例模式的创建可以分为两…

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

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://www.hkea.cn/news/988120/

相关文章:

  • 手机网站解决方案看网站搜什么关键词
  • 顺企网江西网站建设宜昌今日头条新闻
  • 坪山网站建设行业现状网页设计与制作代码成品
  • 网站建设需求文档模板下载学大教育一对一收费价格表
  • 小型网站怎样优化百度首页官网
  • 网站开发与iso9001关系百度上做推广怎么做
  • wordpress怎么设置导航镇江seo
  • 番禺建设网站服务软文写作网站
  • 有哪些专做自然风景图片的网站石首seo排名
  • 移动网站虚拟主机seo 排名 优化
  • 专业网站建设课程网站推广优化方式
  • 适合站长做的网站信息流广告投放工作内容
  • 做健身网站步骤网站建设网络公司
  • 武汉整站seo数据上云网站关键词优化怎么做的
  • 网站尾部网络seo推广
  • 建设一个公司网站需要什么知识网站网络推广优化
  • 政府高度重视网站建设怎么做网络推广
  • 自己做的网站是怎么赚钱免费ip地址网站
  • 郑州市政府网站集约化建设计划企业seo排名外包
  • 什么网站可以免费做护师题企业网站管理系统源码
  • 青岛专业餐饮网站制作国内搜索引擎排行榜
  • 域名有哪些seo站长之家
  • 建设网站有哪些关键词制作软件
  • 视频网站怎么制作网店推广的作用是什么
  • 网站栏目怎么做单独的搜索框云南疫情最新消息
  • 独立商城b2c电商网站开发合肥百度seo代理
  • 做购物网站需不需要交税费郑州网站托管
  • 是不是做网站就能赚钱谷歌seo关键词优化
  • 萝岗门户网站建设今日重大新闻头条财经
  • 个人相册网站模板怎么把网站排名排上去