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

  • 电饭煲显示e3是什么原因(电饭煲显示e3是什么意思)

    电饭煲显示e3是什么原因(电饭煲显示e3是什么意思)

  • 携程网上如何订机票(携程网上如何订酒店)

    携程网上如何订机票(携程网上如何订酒店)

  • 苹果后台应用刷新什么意思

    苹果后台应用刷新什么意思

  • 为什么b站没有弹幕(为什么b站没有nba剪辑视频)

    为什么b站没有弹幕(为什么b站没有nba剪辑视频)

  • 苹果手机不能打字怎么回事(苹果手机不能打字了是什么原因)

    苹果手机不能打字怎么回事(苹果手机不能打字了是什么原因)

  • 毒上闪电发货和极速发货区别(毒闪电发货和普通有什么区别卖家)

    毒上闪电发货和极速发货区别(毒闪电发货和普通有什么区别卖家)

  • 6plus机身尺寸(6plus手机尺寸)

    6plus机身尺寸(6plus手机尺寸)

  • dell笔记本开机卡在dell图标(dell笔记本开机后无法进入系统)

    dell笔记本开机卡在dell图标(dell笔记本开机后无法进入系统)

  • 学信网上的照片可以下载吗(学信网上的照片可以自己上传吗)

    学信网上的照片可以下载吗(学信网上的照片可以自己上传吗)

  • 不方便接听是拉黑了吗(不方便接听电话是被拉黑了吗)

    不方便接听是拉黑了吗(不方便接听电话是被拉黑了吗)

  • 快手作品推广能涨粉吗(快手上作品推广有用吗)

    快手作品推广能涨粉吗(快手上作品推广有用吗)

  • 来视频没声音怎么回事(来视频没声音怎么设置)

    来视频没声音怎么回事(来视频没声音怎么设置)

  • 任务栏不见了怎么办(任务栏不见了怎么关机)

    任务栏不见了怎么办(任务栏不见了怎么关机)

  • 腾讯视频不能发弹幕了(腾讯视频不能发言怎么回事)

    腾讯视频不能发弹幕了(腾讯视频不能发言怎么回事)

  • 手机右上角hd是啥(手机右上角hd是什么意思怎么关闭oppoReno5K)

    手机右上角hd是啥(手机右上角hd是什么意思怎么关闭oppoReno5K)

  • mate30支持nfc吗(华为mate 30支持nfc吗)

    mate30支持nfc吗(华为mate 30支持nfc吗)

  • 荣耀7x双卡怎样设置(荣耀7双卡双待双通怎么设置)

    荣耀7x双卡怎样设置(荣耀7双卡双待双通怎么设置)

  • 小米手机怎么设置防盗系统(小米手机怎么设置自动开关机)

    小米手机怎么设置防盗系统(小米手机怎么设置自动开关机)

  • 9524开头的是啥号(9524开头的是什么电话)

    9524开头的是啥号(9524开头的是什么电话)

  • 华为nova5与nova5i的区别(华为nova5与nova5ipro参数对比)

    华为nova5与nova5i的区别(华为nova5与nova5ipro参数对比)

  • w10如何退出杀毒软件(怎样退出win10杀毒软件)

    w10如何退出杀毒软件(怎样退出win10杀毒软件)

  • 快手个人主页收藏在哪(快手个人主页收藏在哪里找)

    快手个人主页收藏在哪(快手个人主页收藏在哪里找)

  • 【THREE.JS学习(3)】使用THREEJS加载GeoJSON地图数据(three.js 教程)

    【THREE.JS学习(3)】使用THREEJS加载GeoJSON地图数据(three.js 教程)

  • 【计算机视觉】图像增强——图像的形态学操作(计算机视觉的未来发展方向有哪些)

    【计算机视觉】图像增强——图像的形态学操作(计算机视觉的未来发展方向有哪些)

  • 帝国CMS的列表怎么实时显示点击数?(代码示例)(帝国cms简介标签)

    帝国CMS的列表怎么实时显示点击数?(代码示例)(帝国cms简介标签)

  • 教培行业提成一般多少
  • 实际出资人享有什么权利
  • 建筑劳务公司工人工资计入什么科目
  • 行政事业单位住房基金
  • 0税率开票如何做账
  • 免交附加税政策
  • 无销项税额
  • 报税显示税款入账未到账
  • 采购商品成本包括
  • 当买方违约时,卖方可以得到哪些补救?
  • 来料加工与进料加工的相似之处有
  • 收回以前年度的应收账款,怎么进行账务处理?
  • 公司代缴的社保个人账户能不能查到
  • 纳税调减事项有
  • 查定征收方式适用于什么
  • 银行承兑汇票向谁追索
  • 哪些税不可以扣除
  • 上级单位给的奖金叫什么
  • 住宅租给公司办什么手续
  • 科研经费税收优惠
  • 低值易耗品怎么结转
  • 纳税评估要转出什么意思
  • 教你怎么制作微信表情
  • 其他权益工具投资交易费用计入哪里
  • 公司法人名下的车辆算公司的车辆吗
  • 有销项无进项税务局会怎么罚
  • PHP:stream_filter_remove()的用法_Stream函数
  • linux添加系统用户命令
  • 融资租赁利息资本化条件
  • mysql_escape_string()函数用法分析
  • 摊销期在一年以内的费用
  • 增值税税控系统技术维护费怎么做账
  • watch跟computed区别
  • oc底层原理
  • php字符串定义
  • thinkphp消息通知
  • redis提供了对值进行运算的命令
  • 母子公司资产划转的涉税问题
  • 银行本票怎么办理转账
  • 退税没有退的部分怎么做账
  • mac安装mysql8.0
  • mysql乱码问题怎么解决
  • 清洁费用属于哪个会计科目
  • 工程项目辅材占比
  • 小规模出售固定资产账务处理
  • 小规模纳税人自行开具增值税专用发票税率
  • 本月开发票下月收款
  • 赊销应收款余额怎么算
  • 应收账款管理制度
  • 业务招待费能计入项目成本吗
  • 手撕定额发票可以抵扣吗
  • 这个营业外支出怎么算
  • 社保税款所属期申报错了要紧吗?
  • 注册资金凭证怎么做
  • 财务月末暂估成本是什么
  • 固定资产增加的方式有
  • java程序怎么直接运行
  • mysql错误处理
  • linux信号机制的原理
  • 硬盘安装好了显示不出来怎么办
  • windows7禁用wifi怎么办
  • number mac
  • linux设置权限755
  • linux添加系统调用的步骤
  • 32位系统的电脑可以连接打印机吗
  • win8.1关机
  • win8怎么设置开始
  • win8丢失msvcp140.dll的解决办法
  • 手机屏幕尺寸测量工具
  • js基于对象的特点是什么
  • apk签名生成器
  • node优秀库
  • unity3.
  • jquery的点击事件怎么写
  • 使用java
  • 电子发票查询官网入口
  • 周炜老婆是干什么的
  • 就业核查怎么核查
  • 动车票电子发票如何获取
  • 税务检查企业所得税案例
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设