位置: 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全面详细解析

  • 苹果12和13手机壳通用吗(苹果12和13手机膜通用吗)

    苹果12和13手机壳通用吗(苹果12和13手机膜通用吗)

  • vivox60怎么插两张卡(vivo x60怎么放双卡)

    vivox60怎么插两张卡(vivo x60怎么放双卡)

  • p40pro卡槽在哪个位置(p40pro卡槽在手机的哪个位置)

    p40pro卡槽在哪个位置(p40pro卡槽在手机的哪个位置)

  • iPhoneXR系统无法更新怎么办(iphonexr系统更新不了)

    iPhoneXR系统无法更新怎么办(iphonexr系统更新不了)

  • 手机打电话显示未接通(手机打电话显示无法访问移动网络)

    手机打电话显示未接通(手机打电话显示无法访问移动网络)

  • 微信分身可以卸载吗(微信分身卸载后怎么恢复)

    微信分身可以卸载吗(微信分身卸载后怎么恢复)

  • 华为手机相互充电怎么使用(华为手机相互充电方法无线充电)

    华为手机相互充电怎么使用(华为手机相互充电方法无线充电)

  • 华为askaloox这个型号(华为askaloox怎么设置隐藏空间)

    华为askaloox这个型号(华为askaloox怎么设置隐藏空间)

  • 微信屏幕怎么变成黑色了(微信屏幕怎么变小了)

    微信屏幕怎么变成黑色了(微信屏幕怎么变小了)

  • 红包没领删除了钱会退回去吗(红包没领删除了会退回吗)

    红包没领删除了钱会退回去吗(红包没领删除了会退回吗)

  • 手机怎么屏蔽骚扰来电(手机怎么屏蔽骚扰彩信)

    手机怎么屏蔽骚扰来电(手机怎么屏蔽骚扰彩信)

  • 无线鼠标干扰wifi解决方法(无线鼠标干扰wifi)

    无线鼠标干扰wifi解决方法(无线鼠标干扰wifi)

  • qq不支持xp系统了吗

    qq不支持xp系统了吗

  • iphone8的默认铃声是什么(iphone8p默认铃声)

    iphone8的默认铃声是什么(iphone8p默认铃声)

  • 北京阿里通信是什么(阿里通信官方)

    北京阿里通信是什么(阿里通信官方)

  • ipadair1和air2区别(ipadair2跟air1的区别)

    ipadair1和air2区别(ipadair2跟air1的区别)

  • 抖音视频只有15秒吗(抖音视频只有15秒想用49秒的背景音乐)

    抖音视频只有15秒吗(抖音视频只有15秒想用49秒的背景音乐)

  • 苹果手机怎么使用微信分身(苹果手机怎么使用FaceTime)

    苹果手机怎么使用微信分身(苹果手机怎么使用FaceTime)

  • 微信群发在哪里操作(微信群发在哪里找到)

    微信群发在哪里操作(微信群发在哪里找到)

  • 华为p30广角在哪里(华为p30广角在哪里打开)

    华为p30广角在哪里(华为p30广角在哪里打开)

  • 隔空投送可以传app吗(隔空投送可以传多大视频)

    隔空投送可以传app吗(隔空投送可以传多大视频)

  • safari尚未接入互联网怎么设置(safari尚未接入互联网,自动关闭怎么回事)

    safari尚未接入互联网怎么设置(safari尚未接入互联网,自动关闭怎么回事)

  • 华为p30处理器型号(华为p30的处理器是)

    华为p30处理器型号(华为p30的处理器是)

  • 【UML】-- 顺序图练习题含答案(自动售货机、学生选课、提款机、购买地铁票、洗衣机工作)(uml中的顺序图由什么组成)

    【UML】-- 顺序图练习题含答案(自动售货机、学生选课、提款机、购买地铁票、洗衣机工作)(uml中的顺序图由什么组成)

  • 【数据挖掘实战】——家用电器用户行为分析及事件识别(BP神经网络)(数据挖掘技术介绍)

    【数据挖掘实战】——家用电器用户行为分析及事件识别(BP神经网络)(数据挖掘技术介绍)

  • 小规模纳税人的企业所得税税率
  • 员工年终奖个税规避
  • 支付所得税的会计处理
  • 其他应收款利息收入会计分录怎么写
  • 火车票增值税申报表怎么填
  • 退伍士兵增值税减免账务处理
  • 库存商品暂估入库
  • 可供出售权益工具投资是非货币
  • 办理企业所得税汇算清缴的期限是
  • 隔月发票可以作废吗?
  • 公司自建厂房需要缴纳哪些税
  • 城建税如何纳税申报
  • 财产租赁合同印花税申报期限
  • 幼儿园开学费发票内容
  • 印花税的计税依据含增值税吗
  • 计提附加税的会计处理
  • 油卡充值属于什么行业
  • 个体户小规模纳税人每月开票
  • 疫情期间企业应该承担哪些责任
  • 购货方跨月销项负数发票如何做账?
  • 开给销货方红字信息表如何做账?
  • win10如何查看显卡版本
  • 付给银行的手续费分录
  • 劳务人员劳务费
  • linux使用cp
  • 个人多交社保划不划算
  • 留抵税额抵扣会计分录
  • springboot+vue+elementsUI 实现分角色注册登录界面
  • 出租不动产预缴增值税计算公式
  • arcgis图案填充
  • 什么情况下可以赔偿n+1
  • 认识数据库思维导图
  • YOLOv5网络结构组成
  • 资产总额怎么计算公式
  • 学人工智能哪家机构比较好
  • 电子银行回单可以导出吗
  • 什么是预付账款的管理重点
  • 财政总预算会计的主体是
  • 开发票的盘锁了
  • 帝国cms8.0版
  • 编制科目余额表的方法
  • 多付的账款计入什么科目
  • 其他应收款增加会计分录
  • sql server 2008 r2 express 精简版与企业版的区别
  • 实收资本与资本公积之和小于实收资本
  • 空调维修费入办公费还是修理费
  • 小规模纳税人免税政策2022
  • 企业所得税税款可以税前扣除吗
  • 其他应收款是负数怎么报税
  • 捆绑销售如何做税务处理合适?
  • 原料到产品
  • 机关事业单位以高于市场价租赁房屋
  • 公司改名后发票怎么开
  • 居间费用超过30%违法吗
  • sql中的视图提高了数据库的
  • linux find 命令详解
  • linux使用yum
  • win8.1进不了系统
  • win7 windows安全中心
  • linux如何使用
  • windows向microsoft报告
  • win8.0升级win8.1
  • 你可能不知道的中融新大
  • ubuntu操作
  • win7系统重装后蓝屏
  • Android自定义控件,切换APP再切回来控件消失了
  • nodejs test
  • jQuery展示表格点击变色、全选、删除
  • Node.js中的什么模块是用于处理文件和目录的
  • css上下间距怎么设置
  • sticky memo widget
  • js创建对象的三种方式
  • 教学实例分析怎么写
  • shell中括号的作用
  • android网络编程题库
  • 开发日记3雷火剑
  • BootStrap glyphicon图标无法显示的解决方法
  • jquery修改css
  • 没有单位怎么交职工养老保险
  • 上海二手房个税退税政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设