countdownlatch也用到了AQS,在CountDownLatch内部写了一个Sync并且继承了AQS这个抽象类重写了AQS中的共享锁方法。首先看到下面这个代码,这块代码主要是判断当前线程是否获取到了共享锁;(在CountDownLatch中,使用的是共享锁机制,因为CountDownLatch并不需要实现互斥的特性)

public final void acquireSharedInterruptibly(int arg)
throws InterruptedException { if (Thread.interrupted()) throw new InterruptedException(); if (tryAcquireShared(arg) < 0) //state如果不等于0,说明当前线程需要加入到共享锁队列中 doAcquireSharedInterruptibly(arg);
} 

acquireSharedInterruptibly相关推荐

  1. 转:AbstractQueuedSynchronizer的介绍和原理分析

    引自:http://ifeve.com/introduce-abstractqueuedsynchronizer/ 简介 提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架.该同 ...

  2. 用“逐步排除”的方法定位Java服务线上“系统性”故障

    说明:原文地址已经不可访问,其他地方有转载,不过很多丢失图片,所以,找到一处有图的重新配好图. 用"逐步排除"的方法定位Java服务线上"系统性"故障 Post ...

  3. 一文搞懂 CountDownLatch 用法和源码!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! CountDownLatch 是多线程控制的一种工具,它被 ...

  4. CountDownLatch的实现分析

    CountDownLatch CountdownLatch 是 JDK 并发包中提供的并发工具类,其允许一个或多个线程等待其他线程完成操作.常用作将一个任务拆分成多个子任务同时执行,只有子任务都执行完 ...

  5. Java并发同步器AQS

    AQS是AbstractQueuedSynchronizer的简写,中文名应该叫抽象队列同步器(我给的名字,哈哈),出生于Java 1.5. 一.什么是同步器 多线程并发的执行,之间通过某种 共享 状 ...

  6. 扔掉源码,15张图带你彻底理解java AQS

    java中AQS是AbstractQueuedSynchronizer类,AQS依赖FIFO队列来提供一个框架,这个框架用于实现锁以及锁相关的同步器,比如信号量.事件等. 在AQS中,主要有两部分功能 ...

  7. 源码级深挖AQS队列同步器

    我们知道,在java中提供了两类锁的实现,一种是在jvm层级上实现的synchrinized隐式锁,另一类是jdk在代码层级实现的,juc包下的Lock显示锁,而提到Lock就不得不提一下它的核心队列 ...

  8. 【转载】并发数据结构

    2019独角兽企业重金招聘Python工程师标准>>> 本文转载自http://shift-alt-ctrl.iteye.com/blog/1841084 请首先参考:http:// ...

  9. 彻底理解Java的feature模式

    先上一个场景:假如你突然想做饭,但是没有厨具,也没有食材.网上购买厨具比较方便,食材去超市买更放心. 实现分析:在快递员送厨具的期间,我们肯定不会闲着,可以去超市买食材.所以,在主线程里面另起一个子线 ...

最新文章

  1. 15000 字的 SQL 语句大全
  2. weblogic公布的项目用途myeclipse正常启动,点击startWeblogic.cmd报错解决方案
  3. java获取当前路径
  4. python 四舍五入保留小数输出
  5. SSM框架之关于使用JSP作为视图展示问题解决方案
  6. 文科生如何理解深度学习?
  7. 【Python】Matplotlib绘制带颜色标尺的彩色曲面
  8. 用matlab录制声音然后进行读取和播放
  9. 【2020】六家云厂商价格比较:AWS、阿里云、Azure、Google Cloud、华为云、腾讯云
  10. stata画图命令_STATA计量研究/面板单位根检验分析(含代码)
  11. security center启动类型更改不了_Word 启动缓慢解决方法
  12. uniapp进行H5微信支付
  13. javashop 发布开源放大镜HiZoom插件
  14. Android 新浪微博开发者平台应用申请及配置说明
  15. 美国大学 计算机,U.S.News美国大学计算机专业排名
  16. 双碳实力 | 谱尼成为上海市环境保护产业协会应对气候变化专委会成员单位
  17. Pubwin数据备份专家官方版
  18. 读后感:【许岑—如何成为有效学习的高手】
  19. Java面试复习提纲
  20. word中添加续表和合并续表

热门文章

  1. Java引用类型有哪些
  2. Spring框架第二天知识总结
  3. plsql developer导入导出序列方法
  4. 织梦DedeCMS自定义表单限制IP24小时只能提交多少次
  5. 最全面的 MySQL 索引详解
  6. iOS开发时间戳与时间,时区的转换,汉字与UTF8,16进制的转换
  7. 【.Net基础02】XML序列化问题
  8. 【RPC】你应该知道的 RPC 原理
  9. Waiting for table metadata lock
  10. Usb设备驱动3:root hub守护进程2