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

建站公司成功案例东莞优化网站制作

建站公司成功案例,东莞优化网站制作,wordpress 多模板,营销网址大全双重检验锁:设计模式中的单例模式,细分为单例模式中的懒加载模式。 单例模式 单例模式:指的是一个类只有一个对象。最简单的实现方式是设一个枚举类,只有一个对象。缺点是当对象还没有被使用时,对象就已经创建存在了…

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

单例模式

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

懒汉式和饿汉式

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

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

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

**代码解析**

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.hkea.cn/news/921678/

相关文章:

  • 计算机网站设计论文营销排名seo
  • 源码资源国内专业seo公司
  • 丽水微信网站建设报价免费精准客源
  • 广东建设工程中标公示网站google搜索引擎优化
  • 南宁老牌网站建设公司正版google下载
  • 网站做信用认证有必要吗微信朋友圈推广平台
  • 电子政务网站建设要求百度关键词规划师
  • 博客网站开发毕设免费大数据分析网站
  • 深圳教育平台网站建设好消息疫情要结束了
  • 国外设计文章的网站淘宝代运营靠谱吗
  • 市桥网站建设sem论坛
  • 猎头公司是做什么的可靠吗排名优化外包公司
  • 扶贫网站建设关键词查询神器
  • 沈阳酒店企业网站制作公司2023年9月疫情又开始了吗
  • 厦门专业网站建设如何快速推广一个新产品
  • 帮人做传销网站违法吗seo网站排名助手
  • 如何做优品快报下的子网站营销型网站建设目标
  • 用织梦做网站调用乱码营业推广是什么意思
  • 做走私网站北京口碑最好的it培训机构
  • 网站建设OA系统开发it培训机构哪家好
  • 网站运维可以做哪些域名查询网站入口
  • 网站开发的基本语言外贸平台自建站
  • 女生自己做网站营销方法有哪些
  • 怎么自己做网站吓别人金融网站推广圳seo公司
  • 彩票网站的客服有做吗海淀seo搜索优化多少钱
  • 河源哪有做网站网页模板设计
  • 手机网站可以做英文版本吗近三天时政热点
  • 怎么做网站游戏网络优化排名培训
  • ic外贸网站建设黑帽seo技巧
  • 实业有限公司网站怎么做百度一下了你就知道官网