- 基础概念
同步和异步
并发和并行
阻塞和非阻塞
- java内存模型
原子性(Atomicity)
可见性(Visibility)
有序性(Ordering)
Happen-Before原则
volatile和sychronized
- 线程基本操作
新建线程
终止线程
线程中断
等待(wait)和通知(notify)
挂起(suspend)和继续执行(resume)线程
等待线程结束(join)和谦让(yield)
- 同步控制
倒计数器:CountdownLatch
循环栅栏:CyclicBarrier
- 线程池
什么是线程池
使用线程池的好处
Executor框架:
- newFixedThreadPool()
- newSingleThreadExecutor()
- newCachedThreadPool()
- newSingleThreadScheduleExecutor()
- newScheduledThreadPool()
超负载了怎么办:拒绝策略
- jdk的并发容器
线程安全的HashMap:ConcurrentHashMap
高效读写的队列:ConcurrentLinkedQueue
高效读取:CopyOnWriteArrayList
数据共享通道:BlockingQueue
随机数据结构:ConcurrentSkipListMap
- 锁
公平锁/非公平锁
可重入锁
独享锁/共享锁
互斥锁/读写锁
乐观锁/悲观锁
分段锁
偏向锁/轻量级锁/重量级锁
自旋锁
交换并比较的无锁操作:CAS
线程局部变量:ThreadLocal
死锁
内容不断补充、更新ing