分类描述:Java 同步包 java.utils.concurrent 中类的介绍

JUC 源码 系列

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

锁 的概念.md

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

JUC - ThreadPoolExecutor.md

JUC 系列之 ThreadPoolExecutorThreadPoolExecutor 使用该类有四个构造方法:![image-20210728210814078](C:\Users\eke_l\Desktop\Student\JUC\JUC - ThreadPoolExecutor.assets
Java juc 线程池 2021年08月11日 100次浏览

JUC - ScheduledThreadPoolExecutor.md

JUC 系列之 ScheduledThreadPoolExecutorScheduledThreadPoolExecutor 实时调度ScheduledThreadPoolExecutor 派生于 ThreadPoolExecutor,同时实现了 ScheduledExecutorService 接
Java juc 线程池 2021年08月11日 66次浏览

ThreadLocal.md

ThreadLocal 是一个线程变量,可以理解为一个线程的上下文对象。ThreadLocal 使用先来看看怎么使用,其实很简单:static ThreadLocal<String> context = new ThreadLocal<>(); public stati
Java juc 线程通讯 2021年08月11日 62次浏览

JUC - FutureTask.md

JUC 系列之 FutureTask以下介绍了一种 FutureTask 的用法:Callable<String> callable = new Callable<String>() { @Override public String call() throws
Java juc 2021年08月11日 58次浏览

CountDownLatch & CyclicBarrier.md

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

CAS.md

JUC 系列之 CAS。CASCAS ( compareAndSwap ) 指令:比较并交换。Java 暴露出来的,处理器提供的原子性指令之一 。CAS 指令需要有三个操作数,分别是内存位置(在 Java 中可以简单地理解为变量的内存地址,用 V 表示)、旧的预期值(用 A 表示)和准备设置的新值(
Java juc 2021年08月11日 85次浏览

AQS - 共享锁.md

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

AQS - 条件队列.md

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