随笔分类 - 源码解读
摘要:1.背景 阅读该源码的前提是,已经阅读了reentrantLock的源码! 2.await源码解读 condition代码理解的核心,其实就是理解到: 线程节点如何从sync双向链表队列到指定的条件队列中, 然后又如何从条件队列中到sync双向链表队列的 一定要先把下面的2个图理解到,再去看源码和断
阅读全文
摘要:1.背景 2.预备知识 2.1.park、unpark、interrupt、isInterrupted、interrupted方法的理解 一:park、unpark 1.park、unpark它不是Thread中的方法,而是LockSupport.park(),LockSupport是JUC中的对象
阅读全文
摘要:1.背景 1.AQS简介AQS全称为AbstractQueuedSynchronizer(抽象队列同步器)。AQS是一个用来构建锁和其他同步组件的基础框架,使用AQS可以简单且高效地构造出应用广泛的同步器,例如ReentrantLock、Semaphore、ReentrantReadWriteLoc
阅读全文
摘要:1.背景 2.源码解读 调用该方法的地方 方法源码解读 /** * 取消获取资源(异常处理时都需要用到) * 方法主要功能: * 1.处理当前取消节点的状态; * 2.将当前取消节点的前置非取消节点和后置非取消节点"链接"起来; * 3.如果前置节点释放了锁,那么当前取消节点承担起后续节点的唤醒职责
阅读全文
摘要:1.背景 这一节来带着大家一起阅读LinkedList的源码 2.先来认识一下什么是双向链表 示例图: 代码: package com.ldp.collection.demo01; import org.junit.Test; /** * @author 姿势帝-博客园 * @address htt
阅读全文
摘要:1.背景 阅读源码是提高编程技能的有效方式... 面试中也经常问到源码相关的问题..... 2.源码解读 在解读Vector时大家可以先解读ArrayList,因为这个两个的逻辑几乎是一样的.... ArrayList源码解读:https://www.cnblogs.com/newAndHui/p/
阅读全文
摘要:1.背景 源码解读是提升编程能力的有效方式 在面试中也经常问到..... 2.自己开发一个类似ArrayList的对象 解读源码的最佳方式就是自己开发一个类似的.... package com.ldp.collection.my; import java.util.AbstractList; imp
阅读全文