位置: IT常识 - 正文

Java 中的Double Check Lock(转)(java中double是什么数据类型)

编辑:rootadmin
Java 中的Double Check Lock(转) - - ITeye技术网站Java 中的Double Check Lock(转) 博客分类:多线程与并发编程Java多线程编程对于多线程编程来说 Java 中的Double Check Lock(转) 博客分类:

多线程与并发编程Java多线程编程

推荐整理分享Java 中的Double Check Lock(转)(java中double是什么数据类型),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:java里面的double,java里的double,java double double,java里double的用法,java里面double什么意思,java里面double什么意思,java double double,java里的double,内容如对您有帮助,希望把文章链接给更多的朋友!

对于多线程编程来说,同步问题是我们需要考虑的最多的问题,同步的锁什么时候加,加在哪里都需要考虑,当然在不影响功能的情况下,同步越少越好,锁加的越迟越优是我们都必须认同的。DCL(Double Check Lock)就是为了达到这个目的。

DCL简单来说就是check-lock-check-act,先检查再锁,锁之后再检查一次,最后才执行操作。这样做的目的是尽可能的推迟锁的时间。网上普遍举的一个例子是延迟加载的例子。

Java代码

publicJava 中的Double Check Lock(转)(java中double是什么数据类型)

class LazySingleton{ private

static

volatile LazySingletoninstance; public

static LazySingletongetInstantce(){ if (instance== null ){ synchronized (LazySingleton. class ){ if (instance== null ){ instance=new LazySingleton(); } } } return instance; } }

对上面的例子来说,我们当然也可以把锁加载方法上,那样的话每次获取实例都需 要获取锁,但其实对这个instance来说,只有在第一次创建实例的时候才需要同步,所以为了减少同步,我们先check了一下,看看这个 instance是否为空,如果为空,表示是第一使用这个instance,那就锁住它,new一个LazySingleton的实例,下次另一个线程来 getInstance的时候,看到这个instance不为空,就表示已经创建过一个实例了,那就可以直接得到这个实例,避免再次锁。这是第一个 check的作用。

第二个check是解决锁竞争情况下的问题,假设现在两个线程来请求getInstance,A、B线程同时发现instance为空,因为我们 在方法上没有加锁,然后A线程率先获得锁,进入同步代码块,new了一个instance,之后释放锁,接着B线程获得了这个锁,发现instance已 经被创建了,就直接释放锁,退出同步代码块。所以这就是check-lock-then check。

网上有很多文章讨论DCL的失效问题,我就不赘述了,Java5之后可以通过将字段

本文链接地址:https://www.jiuchutong.com/zhishi/311679.html 转载请保留说明!

上一篇:电脑学习网首发Linux端游新剑与魔法IP版支付ios端游和Android端游,可立即运营(学网新用什么电脑)

下一篇:React props全面详细解析

  • 微信地址怎么改成中国大陆(微信地址怎么改到国外)

    微信地址怎么改成中国大陆(微信地址怎么改到国外)

  • 支付宝订阅管理在哪里(支付宝 我的订阅)

    支付宝订阅管理在哪里(支付宝 我的订阅)

  • 格式工厂有mac版吗(格式工厂mac版怎么录屏)

    格式工厂有mac版吗(格式工厂mac版怎么录屏)

  • 笔记本多久换一次硅脂(笔记本多久换一次合适)

    笔记本多久换一次硅脂(笔记本多久换一次合适)

  • Excel怎么填充(excel怎么填充数据)

    Excel怎么填充(excel怎么填充数据)

  • 微信无法扫码(微信无法扫码支付怎么回事)

    微信无法扫码(微信无法扫码支付怎么回事)

  • 微信头像为什么换不了了(微信头像为什么显示暂时无法查看)

    微信头像为什么换不了了(微信头像为什么显示暂时无法查看)

  • wmv和mp4格式的区别(wmv格式和mp4有什么区别)

    wmv和mp4格式的区别(wmv格式和mp4有什么区别)

  • 手机qq连麦有电流声(手机qq连麦有电流声怎么办)

    手机qq连麦有电流声(手机qq连麦有电流声怎么办)

  • 荣耀v30怎么解锁(荣耀v30怎么解锁bl)

    荣耀v30怎么解锁(荣耀v30怎么解锁bl)

  • 华为荣耀如何分屏操作方法(华为荣耀如何分屏俩个游戏界面)

    华为荣耀如何分屏操作方法(华为荣耀如何分屏俩个游戏界面)

  • 移动网络慢怎么设置最快(移动网络慢怎么设置切换联通网)

    移动网络慢怎么设置最快(移动网络慢怎么设置切换联通网)

  • 怎样下载滴滴打车到手机上(怎样下载滴滴打车司机端)

    怎样下载滴滴打车到手机上(怎样下载滴滴打车司机端)

  • 手机wifi被停用怎么办(手机wifi被停用如何恢复)

    手机wifi被停用怎么办(手机wifi被停用如何恢复)

  • ipad防误触在哪里设置(ipad防误触在哪里关闭)

    ipad防误触在哪里设置(ipad防误触在哪里关闭)

  •  为什么苹果商店更新不了软件(为什么苹果商店一直在转圈圈)

    为什么苹果商店更新不了软件(为什么苹果商店一直在转圈圈)

  • 手机呼叫失败是什么原因(手机呼叫失败是啥意思)

    手机呼叫失败是什么原因(手机呼叫失败是啥意思)

  • 华为nova4怎么截长图(华为Nova4怎么截长屏)

    华为nova4怎么截长图(华为Nova4怎么截长屏)

  • 修改支付宝人脸照片(怎么修改支付宝人脸)

    修改支付宝人脸照片(怎么修改支付宝人脸)

  • 苹果7型号ll是什么意思(苹果7型号ll是什么意思啊)

    苹果7型号ll是什么意思(苹果7型号ll是什么意思啊)

  • 苹果11几个卡槽(苹果11pro max参数)

    苹果11几个卡槽(苹果11pro max参数)

  • qq最近常听能看访客吗(qq最近常听是实时的吗)

    qq最近常听能看访客吗(qq最近常听是实时的吗)

  • 苹果耳机线怎么接(苹果耳机线怎么充电)

    苹果耳机线怎么接(苹果耳机线怎么充电)

  • win7防火墙设置在哪里?如何开启和设置呢?(win7防火墙设置不了)

    win7防火墙设置在哪里?如何开启和设置呢?(win7防火墙设置不了)

  • 小规模纳税人一般纳税人区别
  • 工业企业取得土地使用权专用发票可以抵扣吗?
  • 纳税筹划的方法有哪些
  • 运输公司轮胎如何做会计分录
  • 外购货物用于什么不得抵扣进项
  • 长期利润分享计划属于短期薪酬吗
  • 物业费免交条件
  • a3软件怎么反记账
  • 净现值为零时的收益率
  • 单位捐赠汽车账务处理要如何做?
  • 普通增值税发票查询结果不一致是什么原因?
  • 什么是所有者权益?其包括哪些内容
  • 制造费用月末需要结转吗
  • 税务要求企业所得税预缴申报更正
  • 企业修路会计分录
  • 金蝶k3购货发票怎么点击记账
  • win11怎么设置声音
  • 合并报表抵消分录实例
  • 每股收益增长率计算公式
  • win11快捷键大全
  • 银行结算账户的种类
  • 现金结算的范围及内部控制
  • 投资性房地产出售
  • vue3 + Tailwind Css + Vite 搭建快速开发前端样式环境
  • 异构图神经网络 电影推荐
  • 利息收入的含义
  • 营业费用这个科目还在用吗
  • 允许税前扣除的税金
  • 最好卖的游戏机排行榜
  • 钢管租赁费如何计算
  • wordpress添加css
  • js实现功能
  • 滨州高新技术企业名单
  • 跨平台 gui
  • 税务法是否允许私人经营
  • css文件代码示例
  • 主营业务冲减怎么做账
  • 织梦怎么导入数据库
  • 失控票要在抵扣当月转出吗
  • 个体户核定征收和查账征收哪个好
  • 企业开外币户有什么用
  • 企业跨区变更地址需要多久
  • 员工垫付费用怎么做账
  • 过渡期补贴是什么意思
  • 业务分成方案
  • 人力资源外包服务包括哪些
  • 去年多交所得税今年怎么处理
  • 销售返利可以计入销售费用吗
  • 企业取得的跨期业务
  • 电子汇票接收后怎么操作
  • 代收的车船税没交怎么办
  • 企业分红给个人的税收
  • 发票丢失了怎么报销
  • mysql登录失败处理
  • sqlserver数据库维护
  • MSSQL 数据库同步教程
  • win10更新dx
  • Windows Server 2008网上邻居打开慢的解决
  • win7系统删除文件夹怎么恢复
  • centos中如何查看ip地址
  • windows无法启动,可能原因
  • xp系统插u盘没反应怎么解决
  • win10浏览器没有网络连接
  • windows8如何调用摄像头
  • liunx改时间命令
  • win10老是自动重启是什么原因
  • win10开始菜单图标消失
  • psrameters
  • 浮动浮动
  • nodejs 代码加密
  • 微信小程序实现人脸识别
  • jquery多选
  • python如何用
  • 基于javascript的毕业设计
  • IEnumerator/ IEnumerable/ yield return/ StartCoroutine 详解
  • 深入理解javascript特性.pdf
  • the oculus rift
  • Windows环境下搭建Python开发环境的方法
  • 医保属于地税还是国税
  • 伙食补助和伙食费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设