setHeadAndPropagate
这个方法的主要作用是把被唤醒的节点,设置成head节点。 然后继续唤醒队列中的其他线程。
由于现在队列中有3个线程处于阻塞状态,一旦ThreadA被唤醒,并且设置为head之后,会继续唤醒后续的ThreadB
private void setHeadAndPropagate(Node node, int propagate) { Node h = head; // Record old head for check below setHead(node); if (propagate > 0 || h == null || h.waitStatus < 0 || (h = head) == null || h.waitStatus < 0) { Node s = node.next; if (s == null || s.isShared()) doReleaseShared(); }
}
图解分析
setHeadAndPropagate相关推荐
- 转:AbstractQueuedSynchronizer的介绍和原理分析
引自:http://ifeve.com/introduce-abstractqueuedsynchronizer/ 简介 提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架.该同 ...
- 一文搞懂 CountDownLatch 用法和源码!
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! CountDownLatch 是多线程控制的一种工具,它被 ...
- Java并发同步器AQS
AQS是AbstractQueuedSynchronizer的简写,中文名应该叫抽象队列同步器(我给的名字,哈哈),出生于Java 1.5. 一.什么是同步器 多线程并发的执行,之间通过某种 共享 状 ...
- 源码级深挖AQS队列同步器
我们知道,在java中提供了两类锁的实现,一种是在jvm层级上实现的synchrinized隐式锁,另一类是jdk在代码层级实现的,juc包下的Lock显示锁,而提到Lock就不得不提一下它的核心队列 ...
- Java Lock接口分析之ReentantReadWriteLock
2019独角兽企业重金招聘Python工程师标准>>> ReentantReadWriteLock读写锁,在读线程多余写线程的并发环境中能体现出优异的性能,相比于synchroniz ...
- AbstractQueuedSynchronizer原理分析
AQS是JUC锁框架中最重要的类,通过它来实现独占锁和共享锁的.本章是对AbstractQueuedSynchronizer源码的完全解析,分为四个部分介绍: CLH队列即同步队列:储存着所有等待锁的 ...
- 死磕 java同步系列之ReentrantReadWriteLock源码解析
问题 (1)读写锁是什么? (2)读写锁具有哪些特性? (3)ReentrantReadWriteLock是怎么实现读写锁的? (4)如何使用ReentrantReadWriteLock实现高效安全的 ...
- AQS分析(AbstractQueuedSynchronizer)(三)
1.AQS是什么 AQS同步器是Java并发编程的基础,从资源共享的角度分成独占和共享两种模式,像ReentrantLock.ThreadPoolExecutor.CountDownLatch等都是基 ...
- JUC之CountDownLatch的源码和使用场景分析
最近工作不饱和,写写文章充充电.何以解忧,唯有Coding.后续更新的文章涉及的方向有:ThreadPoolExecutor.Spring.MyBatis.ReentrantLock.CyclicBa ...
最新文章
- plsql设置字段可为空_2015最新整理PLSQL常用设置
- 邻接表终极解析===和vector写法的区别
- 深入浅出MongoDB(二)概述
- 豆瓣9.3的纪录片《西南联大》告诉你:大学学风应如是!
- pagehelper插件oracle,带你学习最简单的分页插件PageHelper
- 使用tcl文件分配管脚
- matlab设置ylabel,关于ylabel设置的问题
- 架构师:成为架构师可能会面临的问题
- 印刷电路板(PCB)基础
- 机械设计二级减速器设计
- 【工具使用】无法登陆bing搜索引擎
- Android 去掉Power键屏保功能,但保留长按关机功能。
- 《一个程序员的奋斗史》读后感:从码农谈起
- 刷屏!日本内政部向国民宣传5G的短视频:未来将是这样!
- FSA-Net: Learning Fine-Grained Structure Aggregation for Head Pose Estimation from a Single Image
- 计算机显示器不亮灯,电脑液晶显示器指示灯不亮是为什么?
- 嵌入式Linux基础教程-读书笔记
- STC单片机蓝牙无线下载-烧写程序ISP(STC8 STC15 STC12 STC11 STC89)
- 小米3基于android,小米手机3评测 最大最快的小米3详细评测图文介绍
- pr文字转语音有插件吗_3种方法,免费让你的文字变成语音!
热门文章
- Installshield x:实现序列号检验,获取用户信息并写入指定_ini文件1 - 子夜 MySpace聚友博客...
- UOJ #579. 树上的颜色
- Docker安装mysql8
- 各种快速幂(qaq)
- JS - 讨论 - 编码习惯 - JavaScript代码到底要不要写分号?
- 分布式锁-常用技术方案
- 安装完成后在命令行运行bash时报错0x80070057
- django学习(1)-----项目组成
- 在Ubuntu 16.04下安装Matlab 2017a
- 使用dbunit和system-rules测试代码