小册描述
目录
- 第一章:相关概念
- 1.1 并发和并行
- 1.2 进程和线程
- 1.3 线程调度
- 1.4 多线程的应用场景
- 第二章:线程的创建和使用
- 2.1 概述
- 2.1 JDK 5之前创建线程的方式
- 2.1.1 概述
- 2.1.2 继承 Thread 类
- 2.1.3 实现 Runnable 接口
- 2.1.4 继承方式和实现方式的区别
- 2.2 设置线程名称和获取线程名称
- 2.3 线程的优先级
- 第三章:线程安全
- 3.1 售票程序引出线程安全
- 3.2 线程安全的原因
- 3.3 线程安全的解决方法
- 3.4 JDK 5 之前解决线程安全
- 3.4.1 概述
- 3.4.2 同步机制的原理
- 3.4.3 同步机制中的锁
- 3.4.4 应用示例
- 3.5 JDK 5 之后解决线程安全
- 3.6 死锁
- 3.7 synchronized 与 Lock 的对比
- 第四章:线程通信
- 4.1 为什么需要线程通信?
- 4.2 等待唤醒机制
- 4.3 生产者和消费者问题
- 4.4 sleep() 和 wait() 方法的区别
- 4.5 生产者和消费者性能问题
- 4.6 Lock 接口的深入
- 第五章:单例设计模式
- 5.1 概述
- 5.2 单例模式
- 第六章:线程池
- 6.1 概述
- 6.2 线程池相关的API
- 6.3 实现 Callable 接口
- 6.4 ThreadPoolExecutor
- 第七章:线程的生命周期
- 第八章:volatile 关键字
- 8.1 概述
- 8.2 应用示例
- 第九章:原子性
- 9.1 概述
- 9.2 AtomicInteger
- 9.2.1 常用方法
- 9.2.2 原理
- 9.2.3 源码解析
- 9.3 synchronized 和 CAS 的区别
- 第十章:并发工具类
- 10.1 Hashtable
- 10.2 ConcurrentHashMap
- 10.3 CountDownLatch
- 10.4 Semaphore