摘要: 1. 使用 public class TestExecutors { public static void main(String[] args) { Executors.newCachedThreadPool(); Executors.newScheduledThreadPool(10, Exec 阅读全文
posted @ 2025-06-26 19:12 ThinkerQAQ 阅读(20) 评论(0) 推荐(0)
摘要: 目录1. 是什么2. 如何使用3. 原理分析3.1. uml3.2. 构造方法3.3. set方法3.3.1. 先获取Thread对应的ThreadLocalMap3.3.2. 有的话调用ThreadLocalMap set方法插入ThreadLocal:value3.3.2.1. 发生Hash冲突 阅读全文
posted @ 2025-06-26 19:11 ThinkerQAQ 阅读(169) 评论(2) 推荐(0)
摘要: 目录1. 是什么2. 如何使用3. 原理分析3.1. uml3.2. 构造方法3.3. set方法3.3.1. 先获取Thread对应的ThreadLocalMap3.3.2. 有的话调用ThreadLocalMap set方法插入ThreadLocal:value3.3.2.1. 发生Hash冲突 阅读全文
posted @ 2025-06-26 19:10 ThinkerQAQ 阅读(30) 评论(0) 推荐(0)
摘要: 目录1. 是什么2. 使用场景3. 如何使用4. 各种BlockingQueue详解以及对比5. ArrayBlockingQueue5.1. 是什么5.2. 如何使用5.2.1. 方法选择5.3. 原理分析5.3.1. uml5.3.2. 构造方法5.3.2.1. 底层使用数组+Lock+Cond 阅读全文
posted @ 2025-06-26 12:32 ThinkerQAQ 阅读(173) 评论(0) 推荐(1)
摘要: 目录1. 是什么2. 如何使用3. 原理分析3.1. 构造方法3.1.1. 底层使用CopyOnWriteArrayList实现3.2. add方法3.2.1. 转调CopyOnWriteArrayList addIfAbsent3.2.1.1. 遍历数组是否存在该object3.2.1.2. 不在 阅读全文
posted @ 2025-06-26 10:20 ThinkerQAQ 阅读(33) 评论(0) 推荐(0)
摘要: 目录1. 是什么2. 如何使用3. 原理3.1. 构造方法3.2. add方法3.2.1. 先加锁3.2.2. 复制数组并在这份数组上操作3.2.3. 将复制的数组set回属性3.3. remove方法3.3.1. 找到要删除元素的位置3.3.2. 加锁并把除了被删除之外的其他元素复制到新数组中,s 阅读全文
posted @ 2025-06-25 21:49 ThinkerQAQ 阅读(141) 评论(0) 推荐(0)
摘要: 目录1. 是什么2. 如何使用2.1. CountDownLatch VS CyclicBarrier3. uml4. 构造方法4.1. Sync【AQS子类】5. countDown方法5.1. 使用AQS释放锁5.1.1. 尝试释放锁5.1.2. 所有锁释放成功后,移除AQS队列中SIGNAL的 阅读全文
posted @ 2025-06-25 14:32 ThinkerQAQ 阅读(188) 评论(0) 推荐(1)
摘要: 目录1. 是什么2. 如何使用2.1. 不带Runnable2.2. 带Runnale3. 原理分析3.1. uml3.2. 构造方法3.2.1. 使用Lock和Condition实现3.3. await方法3.3.1. 首先是加锁3.3.2. 然后减信号量3.3.3. 最后一个到达的需要执行pre 阅读全文
posted @ 2025-06-25 07:30 ThinkerQAQ 阅读(207) 评论(0) 推荐(1)
摘要: 目录1. 是什么2. 如何使用3. 实现原理3.1. uml3.2. 创建Condition对象3.2.1. 创建AQS.ConditionObject对象3.2.1.1. ConditionObject内部也有一个双向队列3.3. await方法【阻塞等待】3.3.1. 加入condition队列 阅读全文
posted @ 2025-06-24 21:45 ThinkerQAQ 阅读(48) 评论(0) 推荐(1)
摘要: 目录1. 是什么1.1. synchronized vs ReentranLock2. 实现原理2.1. uml图3. 公平锁3.1. 如何使用3.2. 原理分析3.2.1. 构造方法3.2.1.1. 底层使用AQS实现3.2.2. 加锁3.2.2.1. 调用公平锁的lock方法3.2.2.2. 调 阅读全文
posted @ 2025-06-24 11:03 ThinkerQAQ 阅读(271) 评论(0) 推荐(1)