04 2021 档案

摘要:ThreadLocal 是线程的本地变量,也就是不同线程的同一个 ThreadLocal 的 get/set 是独立的。 每个线程 Thread 内部有 ThreadLocalMap,Map 的键是 ThreadLocal<T>,值是泛型 T。 那么,根据线程 Thread 和 ThreadLoca 阅读全文
posted @ 2021-04-24 21:26 Java与大数据进阶 阅读(135) 评论(0) 推荐(0) 编辑
摘要:1 介绍 Semaphore 称为信号量,也是一个共享锁。通过一个内部类 Sync 继承 AQS,并重写了 tryAcquireShared 和 tryReleaseShared。共享锁具体原理可以见我 AQS 的第二篇。AQS(二)共享锁 必须给初始的资源个数 state。每次 acquire 都 阅读全文
posted @ 2021-04-18 16:38 Java与大数据进阶 阅读(81) 评论(0) 推荐(0) 编辑
摘要:1 介绍 CountDownLatch是一种AQS共享锁,可以看之前的介绍AQS(二)共享锁(基于JDK 8) CountDownLatch 定义了一个计数器,和一个阻塞队列, 当计数器的值递减为0之前,阻塞队列里面的线程处于挂起状态,当计数器递减到0时会唤醒阻塞队列所有线程,这里的计数器是一个标志 阅读全文
posted @ 2021-04-11 21:22 Java与大数据进阶 阅读(132) 评论(0) 推荐(0) 编辑
摘要:@ 1 介绍 前置知识,可以看AQS(一)独占锁(基于JDK 8) ReentrantLock 是一个可重入的独占锁。 在独占模式中,isHeldExclusively 为 true 表示是对当前线程加锁,false 表示未加锁或者对其他线程加锁。 加锁状态由 state 标识,如果为0,则说明未加 阅读全文
posted @ 2021-04-01 21:40 Java与大数据进阶 阅读(95) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示