课程简介
本课程专注于Java并发编程,旨在为Java程序员提供一个完整且深入的并发编程学习体系。课程内容从线程基础开始,逐步深入到原子操作、并发工具类等高级主题。通过通俗易懂的讲解方式,结合丰富的实例和源码分析,帮助学员深刻理解并发编程的核心概念和细节,提升底层能力,掌握并发编程的精髓。
课程目录
第一章 线程基础
- 1. 线程概述
- • 认识线程
- • 线程和进程的关系
- • 并发和并行的区别
- • 并发编程的应用场景和风险
- 2. 线程的启动和终止
- • 线程的启动方式:继承Thread类、实现Runnable接口、实现Callable接口
- • 三种启动方式调用上的区别
- • start调用run的底层原理
- • 线程的终止:被弃用的stop方法、请求中断线程(interrupt方法)、响应中断线程(isInterrupted方法)、清除中断状态(interrupted方法)、被中断异常(InterruptedException)
- 3. 线程的属性和常用API
- • 线程的优先级
- • 守护线程的特点和注意事项、JVM中的守护线程
- • 线程组的基本使用、线程组的异常处理
- • yield方法的作用
- • join方法的使用、join方法的Java源码、join方法的JVM源码
- 4. 线程的状态
- • 线程的六种状态
- • 线程状态的代码演示
- 5. 线程同步
- • 多线程操作共享资源的安全问题
- • 使用synchronized对象锁解决线程安全问题、线程的BLOCKED状态
- • 对象锁和类锁
- • Lock框架之ReentrantLock、可重入锁ReentrantLock的锁定原理、可重入锁ReentrantLock之公平锁
- • 条件对象(Object Condition)
- • 等待唤醒机制的基本概念、等待唤醒的标准格式
- • 死锁出现的原因和解决办法
- • 锁与条件对象的核心
- • TheadLocal的基本概念、ThreadLocal的工作原理、ThreadLocal的注意事项
- • 总结:线程基础、线程同步
第二章 原子操作
- 1. 原子操作基本概念与实现原理
- • 原子操作的基本概念
- • 原子操作的实现原理
- • 演示非原子操作的效果及解决方案
- 2. 原子操作类
- • AtomicInteger的原子操作
- • AtomicIntegerArray的原子操作
- • AtomicReferenceArray的原子操作
- • AtomicReference的原子操作
- • 使用AtomicStampedReference演示ABA问题
- • AtomicMarkableReference的原子操作
- • 对象属性原子更新器AtomicReferenceFieldUpdater的问题与使用要求
- 3. volatile关键字与LongAdder
- • volatile关键字的工作原理、可以保证可见性、不能保证原子性
- • JDK8新特性LongAdder
- 4. 总结:原子操作
第三章 并发工具类
- 1. CountDownLatch
- • CountDownLatch的概念和工作原理
- • CountDownLatch的基本使用
- • CountDownLatch的注意事项
- • CountDownLatch的底层原理
- 2. CyclicBarrier
- • CyclicBarrier的基本概念和工作原理
- • CyclicBarrier的基本使用(思路分析、代码实现)
- • CyclicBarrier的底层实现原理(模拟分析、源码分析)
- • CountDownLatch和CyclicBarrier的区别
- 3. Semaphore
- • Semaphore的概念和工作流程
- • Semaphore的基本使用
- • Semaphore的实现原理和注意事项
- 4. Exchanger
- • Exchanger的概念和工作原理
- • Exchanger的基本使用
- 5. 总结:并发工具类
请先
!