第一章 线程基础
1-1 线程概述 免费试学
  • 认识线程
  • 线程和进程的关系
  • 并发和并行的区别
  • 并发编程的应用场景和风险
1-2 线程的启动和终止
  • 线程的启动一:继承Thread类
  • 线程的启动二:实现Runnable接口
  • 线程的启动三:实现Callable接口
  • 三种启动方式调用上的区别
  • start调用run的底层原理
  • 线程的终止:被弃用的stop方法
  • 请求中断线程:interrupt方法
  • 响应中断线程:isInterrupted方法
  • 清除中断状态:interrupted方法
  • 被中断异常:InterruptedException
1-3 线程的属性和常用API
  • 线程的优先级
  • 守护线程的特点和注意事项
  • JVM中的守护线程
  • 守护线程的注意事项
  • 线程组的基本使用
  • 线程组的异常处理
  • yield方法的作用
  • join方法的使用
  • join方法的Java源码
  • join方法的JVM源码
1-4 线程的状态
  • 线程的六种状态
  • 线程状态的代码演示
1-5 线程同步
  • 多线程操作共享资源的安全问题
  • 使用synchronized对象锁解决线程安全问题
  • 线程的BLOCKED状态
  • 对象锁和类锁
  • Lock框架之ReentrantLock
  • 可重入锁ReentrantLock的锁定原理
  • 可重入锁ReentrantLock之公平锁
  • 条件对象1
  • 条件对象2
  • 条件对象的注意事项
  • 等待唤醒机制的基本概念
  • 等待唤醒的标准格式
  • 死锁简介
  • 锁与条件对象的核心
  • TheadLocal的基本概念
  • ThreadLocal的工作原理
  • ThreadLocal的注意事项
  • 【总结】线程基础
  • 【总结】线程同步
第二章 原子操作(资料在本章)
2-1 原子操作
  • 原子操作的基本概念
  • 原子操作的实现原理
  • 演示非原子操作的效果及解决方案
  • AtomicInteger的原子操作
  • AtomicIntegerArray的原子操作
  • AtomicReferenceArray的原子操作
  • AtomicReference的原子操作
  • 使用AtomicStampedReference演示ABA问题
  • AtomicMarkableReference的原子操作
  • 对象属性原子更新器AtomicReferenceFieldUpdater的问题
  • 对象属性原子更新器AtomicReferenceFieldUpdater的使用要求
  • volatile关键字的工作原理
  • volatile关键字可以保证可见性
  • volatile关键字不能保证原子性
  • JDK8新特性LongAdder
  • 【总结】原子操作
第三章 并发工具类
3-1 CountDownLatch
  • 本章导学
  • CountDownLatch的概念和工作原理
  • CountDownLatch的基本使用
  • CountDownLatch的注意事项
  • CountDownLatch的底层原理
3-2 CyclicBarrier
  • CyclicBarrier的基本概念和工作原理
  • CyclicBarrier的基本使用-思路分析
  • CyclicBarrier的基本使用-代码实现
  • CyclicBarrier的底层实现原理-模拟分析
  • CyclicBarrier的底层实现原理-源码分析
  • CountDownLatch和CyclicBarrier的区别
3-3 Semaphore
  • Semaphore的概念和工作流程
  • Semaphore的基本使用
  • Semaphore的实现原理和注意事项
3-4 Exchange
  • Exchanger的概念和工作原理
  • Exchanger的基本使用
  • 【总结】并发工具类