01、 Java并发编程:序章(多线程,多任务,并发的概念);
02、 Java并发编程:多线程的好处(CPU使用,程序设计,程序响应,资源分配);
03、 Java并发编程:多线程的代价(程序设计,上下文切换,资源消耗);
04、 Java并发编程:并发模型(共享状态,分离状态,并行工作机模型,流水线模型,反应/事件驱动系统,函数式并行);
05、 Java并发编程:类单线程(单线程扩展,无共享状态,负载分配,线程通信);
06、 Java并发编程:并发和并行;
07、 Java并发编程:创建并启动java线程(Thread,Runnable,线程名称 ,暂停和停止线程);
08、 Java并发编程:竞态条件和临界区;
09、 Java并发编程:线程安全和共享资源(局部变量,局部对象引用,对象成员变量,线程控制逸出规则);
10、 Java并发编程:线程安全和不变性;
11、 Java并发编程:Java内存模型(内存模型,硬件内存架构,共享对象的可见性,竞态条件);
12、 Java并发编程:Java同步块(synchronized关键字,四种同步块,数据可见性,指令重排,性能开销,可重入性);
13、 Java并发编程:Java volatile关键字(变量可见性,可见性规则,指令重排序,Happens-Before规则);
14、 Java并发编程:Java ThreadLocal(泛型类型,supplier接口,延后设置,InheritableThreadLocal);
15、 Java并发编程:线程信号传递(忙等待,wait、notify、notifyall,信号丢失,虚假唤醒);
16、 Java并发编程:死锁(DeadLock,线程死锁,数据库死锁);
17、 Java并发编程:防范死锁(锁排序,锁超时,死锁检测);
18、 Java并发编程:饥饿与公平性(线程饥饿,锁,公平锁);
19、 Java并发编程:嵌套管程锁死;
20、 Java并发编程:滑移条件(Slipped Conditions);
21、 Java并发编程:Java中的锁(普通锁,可重入锁,公平锁);
22、 Java并发编程:Java中的读/写锁(可重入锁,完全可重入的ReadWriteLock);
23、 Java并发编程:重入锁死;
24、 Java并发编程:信号量(Semaphores,计数信号量,有界信号量,信号量用作锁);
25、 Java并发编程:阻塞队列;
26、 Java并发编程:线程池(Thread Pool);
27、 Java并发编程:比较交换(CAS);
28、 Java并发编程:同步器的结构;
29、 Java并发编程:非阻塞算法(非阻塞并发数据结构、比较交换、乐观锁、共享意向修改、ABA问题、非阻塞算法模板);
30、 Java并发编程:终章:阿姆达尔定律(Amdahl‘s Law);