Administrator

第三部分 虚拟机执行子系统.md

第六章 类文件结构6.2 无关性的基石平台无关性和语言无关系:字节码![image-20210717195251143](C:\Users\eke_l\Desktop\Student\深入理解 Java 虚拟机 第三版\第三部分 虚拟机执行子系统.assets\image-2021071719525

JUC 源码 系列

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

锁 的概念.md

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

JUC - ThreadPoolExecutor.md

JUC 系列之 ThreadPoolExecutorThreadPoolExecutor 使用该类有四个构造方法:![image-20210728210814078](C:\Users\eke_l\Desktop\Student\JUC\JUC - ThreadPoolExecutor.assets

JUC - ScheduledThreadPoolExecutor.md

JUC 系列之 ScheduledThreadPoolExecutorScheduledThreadPoolExecutor 实时调度ScheduledThreadPoolExecutor 派生于 ThreadPoolExecutor,同时实现了 ScheduledExecutorService 接

ThreadLocal.md

ThreadLocal 是一个线程变量,可以理解为一个线程的上下文对象。ThreadLocal 使用先来看看怎么使用,其实很简单:static ThreadLocal<String> context = new ThreadLocal<>(); public stati

JUC - FutureTask.md

JUC 系列之 FutureTask以下介绍了一种 FutureTask 的用法:Callable<String> callable = new Callable<String>() { @Override public String call() throws

CountDownLatch & CyclicBarrier.md

CAS.md

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

AQS - 共享锁.md

JUC 系列之 AQS。本文主要介绍 AQS 实现共享锁的方式与 Semaphore锁获取获取锁的话,主要有 两个方法: public final void acquireShared(int arg) { if (this.tryAcquireShared(arg) <