总纲:
Thread;
Thread安全;
线程安全的集合类;
多线程之间交互:线程阀;
线程池;
Fork/Join;
第2章:认识Thread:
线程实现的三种方法;
Thread里面的属性和方法;
线程的中断机制;
线程的生命周期;
守护线程;
线程组;
当前线程的副本:ThreadLocal;
线程异常的处理;
第3章:Thread安全:
Java内存模型与多线程;
线程不安全和线程安全;
隐式锁synchronized;
显式锁Lock和ReentrantLock;
显式锁ReadWriteLock和ReentrantReadWriteLock;
显式锁StampedLock;
死锁;
volatile关键字;
原子变量:atomic;
单例模式;
第4章:线程安全的集合类:
java.util.Hashtable;
java.util.concurrent.ConcurrentHashMap;
java.util.concurrent.CopyOnWriteArrayList;
java.util.concurrent.CopyOnWriteArraySet;
CopyOnWrite机制;
Vector;
StringBuilder和StringBuffer;
第5章:多线程之间交互:线程阀:
阻塞队列BlockingQueue;
数组阻塞队列ArrayBlockingQueue;
链表阻塞队列LinkedBlockingQueue;
优先级阻塞队列PriorityBlockingQueue;
延时队列DelayQueue;
同步队列SynchronousQueue;
链表双向阻塞队列LinkedBlockingDeque;
链表传输队列LinkedTransferQueue;
同步计数器CountDownLatch;
抽象队列化同步器AbstractQueuedSynchronizer;
同步计数器Semaphore;
同步计数器CyclicBarrier;
第6章:线程池:
什么是线程池;
newSingleThreadExecutor的使用;
newCachedThreadPool的使用;
newFixedThreadPool的使用;
线程池的好处;
线程池的工作机制及其原理;
自定义线程池和ExecutorService;
线程池在工作中的错误使用;
第7章:Fork/Join框架:
Future任务机制和FutureTask;
什么是Fork/Join框架;
认识Fork/Join的JDK里面的家族;
Fork/Join框架的实现原理;
异常处理机制和办法;
Fork/Join模式优缺点及其实际应用场景;
线程实战经验;
一开始是隐式锁:synchronized;然后出现显示锁:ReentrantLock系列接口及实现类;然后出现线程池,
搭配阻塞队列(阻塞队列提供任务,就是要实现的具体的业务逻辑;线程池负责提供线程执行这些任务);
然后又出现悬锁(synchronized的加强版,好像比显式锁更好用);