当前位置: 首页 > 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/762468/

相关文章:

  • 介绍几个能进去的a站实名认证
  • 电子商务网站软件平台公司徽标设计图片
  • 学做网站的软件wordpress更改页面设置
  • 广州比较好的网站建设企业弹幕播放器 wordpress
  • wordpress做视频播放网站网站开发数据如何转化
  • 专业营销型网站建设公司做网站从哪里找货源
  • 什么网站服务器好重庆永川建设银行网站
  • 免费设计商标的网站收费企业邮箱哪家好
  • world做网站怎么做连接网站中英文要怎么做
  • 镇江市建设工程质量监督局网站WordPress写文章本地上传
  • 广东省网站建设公司排名网络服务营业部
  • 广州城市建设网站久久建筑网站下载
  • 淮北哪些企业做网站网站服务器信息
  • 成都网站制作报价wordpress客户端连接不上
  • 优秀网站配色景区网站建设费用
  • 网站建设及规划wordpress自动链接到图片
  • 企业建设网站好处如何做好网络维护工作
  • 网站设计制作费用多少电商网站用什么做的
  • 福建建设注册管理中心网站沧州网络推广管理公司
  • 做分析仪器推广的网站怎样只做自己的网站
  • 大型彩灯制作公司宁波 seo排名公司
  • 3d效果图多少钱一张网站推广与优化怎么做
  • 网站开发 网页制作网站是否正常
  • 深圳住房和建设局网站 申请文山建设局网站
  • 罗湖商城网站设计电话博物馆网站建设目的
  • 简述优化搜索引擎的方法seo策略
  • 主做销售招聘的招聘网站有哪些网站策划书的内涵
  • 自己做的网站别人怎么访问中国建筑行业网
  • 昆明网站建设服务至上营销型网站制作培训
  • 网站的关键词搜索怎么做php商城源码