Skip to content

并发编程

知识脉络

并发编程
├── 线程基础
│   ├── 线程生命周期与状态
│   ├── 创建方式(Thread/Runnable/Callable)
│   └── sleep/wait/yield/join
├── 锁机制
│   ├── synchronized(偏向锁/轻量级/重量级)
│   ├── ReentrantLock 与 AQS
│   ├── 读写锁 ReentrantReadWriteLock
│   └── 锁升级过程
├── 并发关键字
│   ├── volatile(可见性/有序性/非原子性)
│   ├── final 内存语义
│   └── CAS 与原子类
├── 线程池
│   ├── 核心参数与执行流程
│   ├── 拒绝策略
│   ├── 线程池大小设定
│   └── 常见线程池(Fixed/Cached/Scheduled)
├── 并发工具
│   ├── CountDownLatch/CyclicBarrier/Semaphore
│   ├── CompletableFuture
│   └── Fork/Join
├── 并发容器
│   ├── ConcurrentHashMap
│   ├── CopyOnWriteArrayList
│   └── BlockingQueue 系列
└── 并发问题
    ├── 死锁(条件/排查/避免)
    ├── ThreadLocal 原理与内存泄漏
    └── 伪共享与缓存行

知识点清单

#题目频率难度状态
1synchronized原理与锁升级极高困难todo
2volatile原理极高进阶todo
3CAS原理与ABA问题极高进阶todo
4AQS原理极高困难todo
5ReentrantLock与synchronized对比极高进阶todo
6线程池核心参数与执行流程极高进阶todo
7线程池大小如何设定进阶todo
8ThreadLocal原理与内存泄漏极高困难todo
9ConcurrentHashMap原理极高困难todo
10死锁条件与排查进阶todo
11线程生命周期与状态转换基础todo
12sleep与wait区别基础todo
13CountDownLatch与CyclicBarrier进阶todo
14CompletableFuture用法进阶todo
15读写锁原理进阶todo
16BlockingQueue实现原理进阶todo
17CopyOnWriteArrayList原理进阶todo
18Semaphore使用场景基础todo
19线程间通信方式基础todo
20Fork-Join框架进阶todo
21Callable与Future基础todo
22synchronized与Lock区别基础todo
23偏向锁-轻量级锁-重量级锁困难todo
24线程池拒绝策略基础todo
25伪共享与缓存行困难todo

口诀速记

  • 线程池参数: "核最存活队工拒(core/max/keepAlive/queue/factory/handler)"
  • synchronized升级: "无偏轻重,单竞短长"
  • 死锁四条件: "互占不循(互斥/占有等待/不可抢占/循环等待)"
  • volatile: "可见有序非原子"

跨域关联