1 ThreadLocal
2 AQS/AbstractQueueSynchronizer
Thinking in Java
21.2.1 定义任务
1 Runnable
21.2.2
2 Thread
21.2.3
3 Executor, 4种线程池
21.2.4
4 Callable
21.2.5 休眠
5 sleep()
6 TimeUnit
21.2.6 优先级
7 优先级 setPriority()/getPriority()
21.2.7 让步
8 yield()
21.2.8
9 后台线程,daemon
10 ThreadFactory接口
21.2.11
11 join() , CyclicBarrier
21.2.13 线程组
21.2.14 捕获异常
21.3 共享受限资源
21.3.2
12 锁,互斥量mutex
13 synchronized
14 Lock对象, ReentrantLock
21.3.3
15 原子性与易变性
16 volatile
21.3.4
17 原子类 AtomicInteger, AtomicLong, AtomicReference
21.3.5
18 临界区, 同步控制块(synchronized代码块)
21.3.7 线程本地存储
防止任务再共享资源上产生冲突的第二种方式是根除对变量的共享
19 ThreadLocal
21.4 终结任务
20 中断,
21 阻塞类型,SleepBlock,可中断的阻塞, IOBlock不可中断, SynchronizedBlock不可中断
22 检查中断,interrupted()
21.5 线程之间的协作
Object 的 wait() & notifyAll(), Condition的 await() & signal()
21.5.1 wait() & notifyAll()
21.5.2 notify() & notifyAll()
21.5.3 生产者与消费者
21.5.4 生产者-消费者与队列
1 BlockingQueue, LinkedBlockingQueue, ArrayBlockingQueue
21.5.5 任务间使用管道进行输入/输出
线程间通信
PipedWriter, PipedReader
21.6 死锁
21.7 新类库
21.7.1 CountDownLatch
21.7.2 CyclicBarrier
21.7.3 DelayQueue
21.7.4 PriorityBlockingQueue
21.7.5 ScheduledExecurot
21.7.6 Semaphore
21.7.7 Exchanger
21.8 仿真
21.9 性能调优
21.9.1 比较各类互斥技术
21.9.2 免锁容器,乐观锁,比较各种Map实现
21.9.3 乐观加锁
21.9.4 ReadWriteLock
21.10 活动对象
Future