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

  • 钉钉电脑怎么退出(钉钉电脑怎么退出自动登录)

    钉钉电脑怎么退出(钉钉电脑怎么退出自动登录)

  • iphone13屏幕是oled吗(iphone13屏幕是oled还是lcd)

    iphone13屏幕是oled吗(iphone13屏幕是oled还是lcd)

  • 饿了么怎么拉黑商家(饿了么怎么拉黑商家店铺)

    饿了么怎么拉黑商家(饿了么怎么拉黑商家店铺)

  • 举报别人qq会被对方知道吗?(qq举报别人会被别人看到自己举报他吗)

    举报别人qq会被对方知道吗?(qq举报别人会被别人看到自己举报他吗)

  • 什么时候才可以解封(什么时候才可以催产)

    什么时候才可以解封(什么时候才可以催产)

  • 手机电池补电有效果吗(手机电池补电后可以继续充电吗)

    手机电池补电有效果吗(手机电池补电后可以继续充电吗)

  • 抖音占内存吗(关注抖音占内存吗)

    抖音占内存吗(关注抖音占内存吗)

  • mini5多大尺寸(平板mini5多大尺寸)

    mini5多大尺寸(平板mini5多大尺寸)

  • ipaidpro11英寸和12.9英寸区别(ipad pro11寸和12)

    ipaidpro11英寸和12.9英寸区别(ipad pro11寸和12)

  • 怎么知道对方关闭了微信运动(怎么知道对方关没关机)

    怎么知道对方关闭了微信运动(怎么知道对方关没关机)

  • 替换在哪个菜单栏(替换在哪个菜单里)

    替换在哪个菜单栏(替换在哪个菜单里)

  • 手机发出滋滋的声音怎么办(手机发出滋滋的声音死机)

    手机发出滋滋的声音怎么办(手机发出滋滋的声音死机)

  • ipada2133是第几代(ipada2133是ipad几代)

    ipada2133是第几代(ipada2133是ipad几代)

  • 手机掉地上黑屏了怎么办(手机掉地上黑屏了但是有声音)

    手机掉地上黑屏了怎么办(手机掉地上黑屏了但是有声音)

  • 怎么把手机上的软件安装到电视上(怎么把手机上的文件传到u盘上)

    怎么把手机上的软件安装到电视上(怎么把手机上的文件传到u盘上)

  • 手机qq怎么看别人空间(手机qq怎么看别人q龄几年)

    手机qq怎么看别人空间(手机qq怎么看别人q龄几年)

  • 拼多多拼单返现返到哪里(拼多多拼单返现金是真的吗)

    拼多多拼单返现返到哪里(拼多多拼单返现金是真的吗)

  • uc浏览器隐藏空间在哪(uc浏览器隐藏空间在哪打开)

    uc浏览器隐藏空间在哪(uc浏览器隐藏空间在哪打开)

  • 一件代发怎么发货流程(一件代发怎么发到国外)

    一件代发怎么发货流程(一件代发怎么发到国外)

  • 网络请求失败是什么意思(网络请求失败是什么意思明明有网)

    网络请求失败是什么意思(网络请求失败是什么意思明明有网)

  • 苹果手机微信怎么解绑手机号(苹果手机微信怎么双开)

    苹果手机微信怎么解绑手机号(苹果手机微信怎么双开)

  • 什么是uniCloud(什么是Unicode)

    什么是uniCloud(什么是Unicode)

  • js字符串(js字符串截取)

    js字符串(js字符串截取)

  • 第一悬崖步道,瑞士格林德瓦 (© Hans-Georg Eiben/eStock Photo)(悬崖徒步)

    第一悬崖步道,瑞士格林德瓦 (© Hans-Georg Eiben/eStock Photo)(悬崖徒步)

  • node版本、npm版本随意切换(node-gyp版本)

    node版本、npm版本随意切换(node-gyp版本)

  • 常见的垃圾回收机制(常见的垃圾回收器有哪些)

    常见的垃圾回收机制(常见的垃圾回收器有哪些)

  • 净利润是指税前利润
  • 分支机构设立当年是否需要就地预缴企业所得税?
  • 公司组织旅游的费用要交个税
  • 汇算清缴的费用会计怎么做账
  • 上级补助收入支出决算科目
  • 成本费用利润率反映什么
  • 全额抵扣的发票怎么申报增值税
  • 销售支付产品是什么意思
  • 车辆买的商业险有家庭包
  • 服务业发票丢失怎么处理
  • 外币账户的银行信息在哪查询
  • 未收到增值税专用发票怎么处理
  • 个体户一个月开票30万怎么上税
  • 零申报企业所得税
  • 应交税费增加记借方还是贷方
  • 为什么增值税不影响利润
  • 税务咨询费用
  • 实验设备折旧率
  • 小规模减免增值税政策
  • 给出含税货款会计分录
  • 跨年度所得税多怎么办
  • 出口退税服务
  • 收到银联商务付款短信
  • 房地产企业开发成本结转
  • 高新技术企业研发费比例
  • 政策性搬迁条件
  • 存货非正常损失的所得税处理
  • 大自然水族馆怎么样
  • 生产车间人员招聘要求
  • Vue3通透教程【十四】TS复杂类型详解(一)
  • eslint vue配置
  • php的exec
  • 车辆保险费用的申请模板
  • php分页技术
  • 简单的css特效
  • 前端文件的上传和下载
  • 【6G 新技术】6G数据面介绍
  • apt-key is deprecated
  • thinkphp函数有哪些
  • 购销合同印花税税率
  • sql server 2005安装在2016
  • 税金及附加如何预测
  • 个人所得税0申报什么意思
  • 原材料账户该如何做账
  • 企业所得税汇算表
  • 成本利润率指的是
  • 临时工工资计入什么费用
  • 借款利息收入开发票
  • 企业丢失专用发票税务机关如何处理
  • 滴滴打车老板起源故事
  • 收到银行的贷款怎么做会计分录
  • 原始股卖出需要缴税吗
  • 增加以前年度损益科目报表要改吗
  • 预收账款属于借还是贷
  • 成本不够如何计算出来
  • 结算本月应付职工工资,其中生产工人工资8000元
  • 手工帐如何结转成本费用
  • 红冲上一年度销售收入
  • 工程施工发生的酒水费会计分录
  • 服务费税额部分计算公式
  • 私人公司盈利怎么把钱拿出来
  • 处置固定资产损失的账务处理
  • mac下安装anaconda
  • win7用u盘怎么重装系统
  • linux删除大量文件方法
  • 光盘pe系统
  • win7电脑连不上wifi怎么解决
  • win10系统中哪些软件可以删除
  • 扫描仪在哪儿
  • windows10一分钟重启解决
  • 对用户输入的判断
  • node.js中的http.response.write方法使用说明
  • unity区域光怎么做
  • 常用的js框架有哪些
  • 广度优先搜索输出路径
  • unity怎么创建空对象
  • js原型使用场景
  • android教程下载
  • 广东民生求助热线电话是多少
  • 出口退税企业分类管理等级
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设