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

  • 直接删除文件,不送入回收站的快捷键是(直接删除文件的快捷键)

    直接删除文件,不送入回收站的快捷键是(直接删除文件的快捷键)

  • vivox30与华为mate30对比

    vivox30与华为mate30对比

  • 小米手机下方搜索栏如何去掉(小米手机下方搜索怎么去掉)

    小米手机下方搜索栏如何去掉(小米手机下方搜索怎么去掉)

  • 微信动态无法删除(微信动态为什么删不了)

    微信动态无法删除(微信动态为什么删不了)

  • 抖音怎么设置不让别人下载我视频(抖音怎么设置不让别人看我关注的人)

    抖音怎么设置不让别人下载我视频(抖音怎么设置不让别人看我关注的人)

  • 小米蓝牙耳机airdots青春版怎么双耳使用(小米蓝牙耳机air2 se只有一边有声音)

    小米蓝牙耳机airdots青春版怎么双耳使用(小米蓝牙耳机air2 se只有一边有声音)

  • 网易云一首歌听多久才记录(网易云一首歌听1000遍怎么刷)

    网易云一首歌听多久才记录(网易云一首歌听1000遍怎么刷)

  • 拼多多录播教程(拼多多录播有效果吗)

    拼多多录播教程(拼多多录播有效果吗)

  • 平板电脑可以做表格吗(平板电脑可以做电商使用吗)

    平板电脑可以做表格吗(平板电脑可以做电商使用吗)

  • 备忘录和便签是一样的吗(便签备忘录app推荐)

    备忘录和便签是一样的吗(便签备忘录app推荐)

  • 发过来的红包打不开怎么办(红包发出去还能要回来吗)

    发过来的红包打不开怎么办(红包发出去还能要回来吗)

  • 抖音评论删除了别人还能看到里面的内容吗(抖音评论删除了别人有提示吗)

    抖音评论删除了别人还能看到里面的内容吗(抖音评论删除了别人有提示吗)

  • 快手个人中心在哪里找(快手个人中心在哪里打开快手作品怎么删除)

    快手个人中心在哪里找(快手个人中心在哪里打开快手作品怎么删除)

  • 钉钉为什么不能分屏(钉钉为什么不能截图)

    钉钉为什么不能分屏(钉钉为什么不能截图)

  • ps选中区域后如何清除(ps选区选中)

    ps选中区域后如何清除(ps选区选中)

  • iphone7支持pd快充吗(iphone7支持快充吗能用2.1a充电吗)

    iphone7支持pd快充吗(iphone7支持快充吗能用2.1a充电吗)

  • iphone怎么恢复软件更新(苹果手机怎么样恢复软件)

    iphone怎么恢复软件更新(苹果手机怎么样恢复软件)

  • 坚果3呼吸灯怎么设置(坚果r1呼吸灯在哪)

    坚果3呼吸灯怎么设置(坚果r1呼吸灯在哪)

  • 淘宝商家和天猫商家的区别(淘宝商家和天猫商家满减可以叠加吗?)

    淘宝商家和天猫商家的区别(淘宝商家和天猫商家满减可以叠加吗?)

  • 手机怎么设置锁屏壁纸(手机怎么设置锁屏看不到消息内容)

    手机怎么设置锁屏壁纸(手机怎么设置锁屏看不到消息内容)

  • 唯品会退货怎么退(唯品会退货怎么免运费)

    唯品会退货怎么退(唯品会退货怎么免运费)

  • 动铁和动圈的区别(动铁和动圈哪个耐用)

    动铁和动圈的区别(动铁和动圈哪个耐用)

  • 抖音被拉黑后显示什么(抖音被拉黑后显示已读)

    抖音被拉黑后显示什么(抖音被拉黑后显示已读)

  • 苹果vue怎么用自己的歌(vue对接苹果cms)

    苹果vue怎么用自己的歌(vue对接苹果cms)

  • 苹果怎么设置200m以上也能下载(苹果怎么设置更省电)

    苹果怎么设置200m以上也能下载(苹果怎么设置更省电)

  • 华为手机黑名单再哪儿(华为手机黑名单通讯录在哪里)

    华为手机黑名单再哪儿(华为手机黑名单通讯录在哪里)

  • 综合收入扣税
  • 免税发票是普票还是专票
  • 委托加工物资的消费税计入成本吗
  • 固定资产可以一次性摊销吗
  • 在建工程人员工资计入产品成本吗
  • 不是党员证明哪些情况需要开
  • 营改增后,建筑安装工程的费率是
  • 发生福利费的会计分录
  • 投资收益可以计入营业收入吗
  • 收到保险公司赔款计入什么科目
  • 公司代缴的社保个人账户能不能查到
  • 民事诉讼的适用范围和基本制度
  • 商业折扣和现金折扣的区别
  • 餐饮企业卖套餐赠送单品要交增值税吗?
  • 转让专利技术使用权属于什么收入
  • 公司注销后如何申请强制执行
  • 药店可以开具专票吗
  • 购买理财产品是不是非法集资
  • 定额发票领用日期
  • 打印机的增值税率
  • 哪些开普通发票
  • 小规模购买农产品
  • 小规模自开专票税率是1%还是3%
  • 一般纳税人和小规模纳税人的区别
  • 收购企业收购方和被收购方如何做账?
  • 销售部门的固定资产折旧计入什么科目
  • 房屋出租预收租金房产税纳税义务发生时间
  • 提升一下网速
  • 软件存在的意义
  • 小黑马下载
  • executor进程
  • 应交增值税的完整计算公式是什么
  • php数组函数,选班长
  • 交易性金融资产包括哪些项目
  • 罚款计入营业外支出影响当期损益
  • 投资收益是否缴增值税
  • php获取当前页面url
  • vue路由传参的几种方式
  • lsmod命令结果详解
  • 多缴税金抵税会怎么样
  • 织梦自定义模型调用
  • SQLite教程(十一):临时文件
  • 独立核算的分公司
  • 海关完税凭证抵税怎么算
  • 内资企业如何进国企
  • 房租押金可以要回来吗
  • 外购商品发放给员工 进项税额能不能抵扣
  • 长期待摊费用做账
  • 企业在建工程领用自产应税消费品成本为10000元
  • 保险赔偿款账务处理
  • 模具维修费用清单表格
  • 企业哪些税费不通过应交税费账户进行核算
  • 对公账户可以转让吗
  • 公司有外籍人员怎么办
  • 运杂费计入什么会计科目
  • 暂估收不到发票,怎么处理
  • 职工教育经费住宿费用可以抵扣吗
  • sql 随机
  • win7打开浏览器很慢
  • Win10虚拟内存怎么转移
  • win8.1怎么用
  • win8计算器在哪里找
  • 怎么给异地的人订外卖
  • 十个linux命令
  • 使用linux的电脑
  • win7蓝牙驱动软件
  • Win10无法获取ipv4
  • Extjs中RowExpander控件的默认展开问题示例探讨
  • python搜索引擎网络爬虫
  • appendChild() 或 insertBefore()使用与区别介绍
  • unity移动游戏开发
  • 抽奖小程序模板
  • js实现返回顶部
  • javascript学习指南
  • 煤炭资源税税率调整
  • 清税申报表怎么填写
  • 个人所得税申报是什么意思
  • 税务窗口岗位职责
  • 税务局文化品牌
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设