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

做淘宝货源网站扬州专业外贸网站建设推广

做淘宝货源网站,扬州专业外贸网站建设推广,网站如何做国外推广,电子商务技术双重检验锁:设计模式中的单例模式,细分为单例模式中的懒加载模式。 单例模式 单例模式:指的是一个类只有一个对象。最简单的实现方式是设一个枚举类,只有一个对象。缺点是当对象还没有被使用时,对象就已经创建存在了…

双重检验锁:设计模式中的单例模式,细分为单例模式中的懒加载模式。

单例模式

单例模式:指的是一个类只有一个对象。最简单的实现方式是设一个枚举类,只有一个对象。缺点是当对象还没有被使用时,对象就已经创建存在了,对内存的消耗大。

懒汉式和饿汉式

懒汉式:是指使用时才产生对象。

饿汉式:不管用没用到,一开始就创建好对象。

双重检验锁的代码实现(来自菜鸟教程)

**代码解析**

1.构造方法设为private(私有的)目的是防止外部new对象。因为单例模式只能有一个对象。否则就不是单例模式了。

2.在类里创建一个private的对象,防止外部直接访问对象。

3.每个线程都是通过getSingleton()方法来获取对象,相当于一个访问器。它是静态的,因为非静态方法要通过对象来调用,而我们不允许外部创建对象。又因为这个方法是static的,所以上面创建的对象也要static的,因为静态的方法只能访问类里静态的对象。

4.两个if(singleton==null)的作用)假设有x个线程同时访问getSingleton()方法想要获取对象,其中有5个执行到了第一个if(singleton ==null){},开始竞争锁,第一个竞争成功的向下执行最后得到对象,第二个if(singleton ==null){}是拦截第一个线程外的其他4个线程,(因为第一个线程竞争成功后,singleton就不为null了,第一个if就穿透了,需要后面的第二个if来拦截)这四个线程进入阻塞队列。如果后面又来了几个线程访问getSingleton()方法,会直接被第一个if(singleton ==null){}拦截。

5.volatile的作用是在new完Sigleton()对象后,立即告诉其他线程singleton不为null了。防止已经通过第一个if判断的线程继续去竞争锁。

6.锁不能加在getSingleton()方法上,而是加在代码块上,因为会影响效率,很多线程想要调用该方法,让其在判断完if(singleton==null)后再加锁效率浪费的时间更少。

http://www.yayakq.cn/news/861519/

相关文章:

  • 建设营销网站要什么学校网站建设预算
  • 网站设计O2O平台优化seo导航站
  • 企业简介 网站建设淘宝代做网站
  • 安阳网站建设_四川建设银行官网招聘网站
  • 网站系统建设申请报告有文化底蕴的公司名字
  • 怎么在wordpress编辑进入二级页面纯手工seo公司
  • 成立网站是不是需要先成立公司网站vip功能怎么实现
  • 包头市住房和城乡建设局官方网站WordPress的黑色框
  • 做语文题的网站客户管理软件
  • 福建得兴建设工程网站wordpress 安装主题
  • 做网站收入怎样丽江市住房建设局网站
  • 攀枝花市建设银行网站关键字优化策略
  • 做收钱的网站要什么条件wordpress模板内容页哪个文件夹
  • 网站建设的总体需求优酷wordpress建站教程
  • 网站域名想更换要怎么做网站默认后台登陆
  • 电商设计网站有哪些河北工程招标信息网官网
  • 高清图片素材网站免费下载如何制作一个php网站源码
  • 微网站特点正规网站建设方案详细
  • wap手机建站平台谷歌怎么把两个网站做反链
  • 企业网站功能是什么系统总裁
  • 2019一个网站开发要多少钱嘉祥住房和城乡建设局网站
  • 衙门口网站建设做百度推广会送网站吗
  • 爱用建站下载wordpress用户自定义作者
  • 本机号码一键登录怀化网站优化公司哪家好
  • 专业简历制作网站模板网站模板购买 优帮云
  • 龙之向导外贸网站fontawesome wordpress
  • 织梦做的网站为什么显示404承包装修工程平台
  • 中小企业建站排名百度关键词排名批量查询工具
  • 镇江网站建设推广thinkphp购物网站开发视频
  • 佛山合展商务网站建设郑州排名前十的科技公司