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

深圳龙华网站建设公司百度识图鉴你所见

深圳龙华网站建设公司,百度识图鉴你所见,wordpress 上传附件,网站手机端怎么做单例模式 什么是单例模式? 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.hkea.cn/news/128626/

相关文章:

  • seo神马网站推广器怎么做神马搜索排名seo
  • 桂林漓江景区网站优化推广排名
  • 网站首页模板设计图网络推广平台代理
  • 一女被多男做的视频网站搜全网的浏览器
  • 建设公司网站费用电脑培训课程
  • 电子商务网站建设课后题女生学网络营销这个专业好吗
  • 新疆兵团建设网站商丘seo优化
  • 手机微信网站怎么做的软文发布网站
  • 传奇手游发布网站seo排名优化方式
  • 网站建设明细报价外链信息
  • 哪个网站做漫画可以有钱营销型网站设计
  • wordpress在线视频直播湖南正规关键词优化
  • 花木企业网站源码全网推广的方式
  • 网站开发商怎么关闭图片显示站长之家新网址
  • 灯饰如何做网站推广纯手工seo公司
  • 晋中公司做网站seo站长之家
  • 到哪里找人做网站优化seo培训班
  • 深圳网站开发哪家专业搜索到的相关信息
  • 湖北武汉网站制作引擎搜索下载
  • 做网站登录的需求分析seo点击排名工具有用吗
  • 诸暨住房和城乡建设委员会网站怎么制作网站?
  • 昆明cms建站模板视频号排名优化帝搜软件
  • 商务咨询网站源码重庆网站建设哪家好
  • 建设部网站从何时可以查询工程师证深圳全网推广服务
  • 网页制作工具的选择与网站整体风格是有关系的友情链接论坛
  • 免费商会网站模板百度推广账号
  • 玄武模板网站制作品牌关键词排名点击软件网站
  • 网站title的写法微信软文怎么写
  • 设计企业网站流程磁力引擎
  • 橙色企业网站模板域名注册购买