JUC 源码 系列

Juc 是指 java.util.concurrent 包下的类,本系列将主要分析其中的源码首先是前置知识 (可以看我的《深入理解 Java 虚拟机》系列中并发部分)各种锁的概念CAS 操作然后是 AQS 源码系列:AQS 独占锁 与 ReentryLockAQS 共享锁 与 SemaphoreAQ
Java juc 线程池 线程通讯 2021年08月11日 2,513次浏览

锁 的概念.md

锁是多线程并发问题中的重要组成,本文简单介绍一下锁中的一些名词:乐观锁悲观锁这两种是两种上锁的思想,乐观锁是假设每次操作都不会冲突,等到提交的时候在判断有没有冲突。其通常需要依赖一些操作系统提供的操作原语。具体到 Java,其核心在于 CAS 操作。乐观锁没有规定判断冲突后的操作,可以进行自旋,放弃
Java juc 2021年08月11日 773次浏览

CountDownLatch & CyclicBarrier.md

JUC 系列之 CountDownLatch 与 CycleBarrierCountDownLatch该类比较简单,因为分析过 AQS,这里直接看 Sync 类: private static final class Sync extends AbstractQueuedSynchronize
Java juc 2021年08月11日 537次浏览

AQS - 共享锁.md

JUC 系列之 AQS。本文主要介绍 AQS 实现共享锁的方式与 Semaphore锁获取获取锁的话,主要有 两个方法: public final void acquireShared(int arg) { if (this.tryAcquireShared(arg) <
Java juc 2021年08月11日 728次浏览

AQS - 条件队列.md

JUC 系列之 AQS。本文主要介绍 AQS 中条件队列的实现。在此之前希望你能对 AQS 的独占锁部分进行相关了解。条件队列AQS 主要是对标 JDK 语法的 Synchronized ,而条件队列 (Condition) 则对标 JDK 语法中的 wait, notify 等方法。来看看如下代码
Java juc 2021年08月11日 1,037次浏览

AQS - 独占锁.md

JUC 系列之 AQS。本文主要介绍 AQS ,其实现独占锁的方式与 ReentrantlockAQS 全称 AbstractQueuedSynchronizer 也称为抽象队列同步器,是 java.util.concurrent.locks 包中的一个抽象类。JUC 中的许多锁比如 Reentra
Java juc 2021年08月11日 773次浏览