草草聊事

Java 并发疑难杂症 · 系列目录

2026/06/18
2
0

Java 并发疑难杂症 · 系列目录

叙事框架:现象 → 逆向推理 → 验证 → 根因 总计 26 篇,已发布 0 篇,26 篇待完善


一、线程池类

  • ⏳ 线程 Dump 不会读?从 BLOCKED/WAITING/RUNNABLE 到问题还原
  • ⏳ 线程池队列积压百万任务,不重启如何诊断?
  • ⏳ 线程池满了:拒绝策略选型失误导致任务丢失
  • ⏳ 核心线程数设错了:过大引发资源竞争、过小导致队列积压
  • ⏳ ScheduledThreadPoolExecutor 定时任务未按时执行排查
  • ⏳ Executors 创建线程池的陷阱:无界队列引发 OOM

二、锁 / AQS 类

  • ⏳ 死锁检测三板斧:jstack + 代码审查 + lock chain 分析
  • ⏳ ReentrantLock 与 synchronized 选型不当引发的性能问题
  • ⏳ 读写锁 ReentrantReadWriteLock 锁降级导致死锁
  • ⏳ AQS 源码级分析:从一次锁等待排查说起
  • ⏳ LockSupport 线程挂起后未被唤醒排查
  • ⏳ synchronized 在不同 JDK 版本下的性能演变与选型

三、ThreadLocal 类

  • ⏳ ThreadLocal 用完不 clean?连接池线程的内存泄漏故事
  • ⏳ ThreadLocal 跨线程传递失效:子线程拿不到父线程的变量
  • ⏳ 线程池 + ThreadLocal 组合使用的经典陷阱

四、并发容器类

  • ⏳ ConcurrentHashMap 真的线程安全吗?组合操作的陷阱
  • ⏳ CopyOnWriteArrayList 内存占用过高分析
  • ⏳ ConcurrentLinkedQueue 元素丢失排查
  • ⏳ BlockingQueue 阻塞导致的生产者消费者卡死

五、JMM / 可见性类

  • ⏳ JMM 重排序导致的诡异并发 Bug 定位
  • ⏳ volatile 不保证原子性的生产案例
  • ⏳ happens-before 规则理解错误导致加锁不当
  • ⏳ 可见性问题:一个线程改了变量另一个线程看不到

六、高级并发类

  • ⏳ Disruptor 百万级吞吐背后的设计哲学与排障
  • ⏳ CompletableFuture 异步编排超时未取消导致线程泄漏
  • ⏳ 分布式锁实现选型不当导致并发控制失效

最后更新:2026-06