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

  • xs996799619(xs99)

    xs996799619(xs99)

  • 京东自提点怎么查询(京东自提点怎么修改)

    京东自提点怎么查询(京东自提点怎么修改)

  • iphone xr如何截图(iphone xr手机截图怎么截)

    iphone xr如何截图(iphone xr手机截图怎么截)

  • airpods音量突然变大(airpods音量突然降低)

    airpods音量突然变大(airpods音量突然降低)

  • 苹果手机传照片到电脑总是中断(苹果手机传照片软件)

    苹果手机传照片到电脑总是中断(苹果手机传照片软件)

  • k30后盖是玻璃还是塑料(k30后盖是玻璃的吗)

    k30后盖是玻璃还是塑料(k30后盖是玻璃的吗)

  • 买二手ipad应该注意什么问题(买二手iPad应该问哪些细节)

    买二手ipad应该注意什么问题(买二手iPad应该问哪些细节)

  • 抖音直播前面的蓝色话筒是什么(抖音直播前面的蓝色标志等级是什么)

    抖音直播前面的蓝色话筒是什么(抖音直播前面的蓝色标志等级是什么)

  • 速印机和复印机的区别(复印机和打印机的区别在哪里)

    速印机和复印机的区别(复印机和打印机的区别在哪里)

  • 抖音怎么搜索店铺(抖音怎么搜索店铺名字)

    抖音怎么搜索店铺(抖音怎么搜索店铺名字)

  • 荣耀20悬浮球怎么关闭(荣耀20悬浮球怎么关)

    荣耀20悬浮球怎么关闭(荣耀20悬浮球怎么关)

  • 抖音添加小程序有收益吗(抖音添加小程序能赚钱吗)

    抖音添加小程序有收益吗(抖音添加小程序能赚钱吗)

  • 苹果智能电池壳能一直戴吗(苹果智能电池壳怎么用)

    苹果智能电池壳能一直戴吗(苹果智能电池壳怎么用)

  • 苹果手机截屏突然失灵(苹果手机截屏突然没声音)

    苹果手机截屏突然失灵(苹果手机截屏突然没声音)

  • opporeno3是不是曲屏(opporeno3是不是曲屏的)

    opporeno3是不是曲屏(opporeno3是不是曲屏的)

  • 退出微信好友能知道吗(如果好友退出微信,我这里会有提示吗)

    退出微信好友能知道吗(如果好友退出微信,我这里会有提示吗)

  • 苹果6浮点怎么设置(苹果浮点怎么开)

    苹果6浮点怎么设置(苹果浮点怎么开)

  • 拼多多省钱月卡有用吗(拼多多省钱月卡没花钱就开通了)

    拼多多省钱月卡有用吗(拼多多省钱月卡没花钱就开通了)

  • iPhone11pro怎么显示电量百分比(iphone11pro怎么显示网速)

    iPhone11pro怎么显示电量百分比(iphone11pro怎么显示网速)

  • 苹果机日历怎么设置节日(苹果手机日历怎么用更有效率)

    苹果机日历怎么设置节日(苹果手机日历怎么用更有效率)

  • 滴滴未成年打不了车(滴滴出行为什么未成年打不了)

    滴滴未成年打不了车(滴滴出行为什么未成年打不了)

  • 华为锁屏杂志怎么取消(华为锁屏杂志怎么设置关闭)

    华为锁屏杂志怎么取消(华为锁屏杂志怎么设置关闭)

  • 微信扫码扫不出来怎么回事(微信扫码扫不出来是假货吗?)

    微信扫码扫不出来怎么回事(微信扫码扫不出来是假货吗?)

  • oppo手机电池损耗检测(oppo手机电池损耗代码)

    oppo手机电池损耗检测(oppo手机电池损耗代码)

  • 华为m5青春版怎么调分辨率(华为m5青春版怎么样)

    华为m5青春版怎么调分辨率(华为m5青春版怎么样)

  • 小米9手机怎么放卡(小米9手机怎么拆开后盖视频)

    小米9手机怎么放卡(小米9手机怎么拆开后盖视频)

  • 剑灵配置要求是什么呀?(剑灵配置要求2020官方)

    剑灵配置要求是什么呀?(剑灵配置要求2020官方)

  • 智能优化算法:蜣螂优化算法-附代码(智能优化算法主要内容)

    智能优化算法:蜣螂优化算法-附代码(智能优化算法主要内容)

  • 出口货物适用什么税率
  • 邮政电信业务差距大吗
  • 委托加工物资的消费税计入成本吗
  • 公司去社保局开什么发票
  • 现金流量表现金流量项目明细分类
  • 工业企业总产值的计算是以什么为主体
  • 表外负债和表内负债对比
  • 调整上月的生产成本
  • 个体户购买发票需要什么资料
  • 融资担保公司会计建议有哪些要求
  • 起征点与免征额的区别
  • 摊销租金是什么意思
  • 低值易耗品摊销方法
  • 法院拍卖房法院有什么义务和责任
  • 产成品或自制半成品核算方法有哪些
  • 营改增后房屋维修的发票可以抵扣吗?
  • 所得税会计核算要点及程序
  • 补缴税款会计处理
  • 营改增前的工程款现在怎么开票
  • 营改增试点实施办法的法律层次是
  • 工资薪金与年终奖筹划
  • 企业卖固定资产
  • 营销活动的意义是什么
  • 4月发票能入1月吗
  • 专项应付款与补助的区别
  • 免征增值税的税额还要交个人所得税吗
  • 发票先入账,但发票不对
  • 确认收入入账
  • 共管帐户的特点是什么
  • 进项税额转出如何做账分录
  • 细说linux
  • macbook隐藏
  • 公司资产转让要交多少税
  • getcodebase
  • 出租设备的租金收入应计入什么科目
  • yolov5 教程
  • vue.js mvvm
  • 应纳税所得额准予扣除的有
  • etc通行费发票可以抵扣吗
  • 隐藏php后缀
  • 转出多交增值税账务处理
  • 帝国cms更换编辑器
  • 阿里规则官方头条
  • 服务型企业交税再返税
  • file file=new file()的作用
  • springbootredis密码加密
  • 银行对账单由谁负责
  • 免税农产品发票需要勾选吗
  • 财务往来账对账总结
  • 公用经费属于哪一类经费
  • 公积金贷方有余额如何做调整分录
  • 收到以前年度增值税退税账务处理怎么做账
  • 会计账簿登记错误
  • 应付账款清账账务处理
  • 收款人是否应当承担还款责任
  • 没有收入是纳税人吗
  • 车辆理赔款如何入账
  • 过程中必须有哪两种状态
  • 子公司内部交易
  • 投资入股行为
  • 终端运行mysql
  • sql server 错误
  • sql优化常用的15种方法
  • windows设备和打印机
  • linux 网络配置
  • vs图片简单
  • centos 软件源
  • c盘越来越小了
  • window10自动维护功能有什么用
  • Unity3D游戏开发(第2版)pdf
  • linux查看目录的权限的命令
  • unity怎么学
  • javascript总结笔记
  • js拖拽效果
  • python 命令
  • 重庆市国家税务局电子税务局官网
  • 山东契税补贴政策2023年
  • 徐州房产过户手续流程
  • 2020年安徽省护理技能大赛视频播放
  • 加油账单怎么查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设