# 并发编程实战入门:从阻塞到精通的进阶之路
课程简介
本课程聚焦Java并发编程的核心进阶内容,系统讲解线程协作机制与现代并发组件的深度应用。无论你是刚接触并发的初学者,还是希望夯实多线程开发功底的实际工作者,本节课程都将为你搭建完整而扎实的并发知识体系。
核心内容概览
一、线程间协作的底层原理(第22章)
本章节从最基础的线程通信机制入手,深入剖析`wait()`、`notify()`与`notifyAll()`三者的行为差异与使用场景。通过对比讲解,你将清晰理解为何在某些情况下必须使用`notifyAll()`而非`notify()`,以及不当调用可能导致的线程永久阻塞问题。
在此基础上,课程以经典的"生产者-消费者"模型为核心案例,分两个实例详细演示如何利用队列结构实现线程间安全的数据交换。第一个实例聚焦基础队列方案的实现细节,第二个实例则进一步引入更完善的并发队列实践,帮助你建立从理论到工程落地的完整认知链条。
此外,本章节还拓展讲解了线程间通过管道进行I/O通信的机制,以及死锁的形成原因与典型案例分析。通过对死锁产生四个必要条件的逐一拆解,你将学会如何在日常编码中识别并规避潜在的死锁风险。
二、JUC并发新构件实战(第23章)
本章节进入Java.util.concurrent包下的核心工具类学习,涵盖六大关键组件:
**CountDownLatch**:用于一个或多个线程等待其他线程完成操作后再继续执行的场景,适合任务分组聚合、启动门控等需求。
**CyclicBarrier**:与CountDownLatch类似但支持循环复用,适用于需要多组线程互相等待同步点的计算任务。
**DelayQueue**:基于优先级队列实现的延迟获取元素容器,常用于定时任务调度、缓存过期等场景。
**PriorityBlockingQueue**:支持优先级排序的无界阻塞队列,保证取出的元素始终是当前优先级最高的项。
**ScheduledExecutor**:通过"温室控制器"实例演示定时任务的优雅实现方式,替代传统的Timer方案。
**Semaphore**:控制同时访问某一资源的线程数量,是实现限流、连接池管理的利器。
学习目标
学完本节后,你将能够:
1. 熟练运用wait/notify机制解决线程间复杂的协作问题
2. 掌握生产者-消费者模型的多种实现方案及其适用场景
3. 理解死锁成因并能在实际项目中有效预防和排查
4. 灵活运用CountDownLatch、CyclicBarrier等工具类设计高并发程序
5. 根据业务需求选择最合适的JUC容器与同步器
适合人群
本课程适合具备Java基础语法知识、了解多线程概念但不深入掌握的开发者。无需预先掌握并发编程经验,课程从原理讲起,辅以丰富的代码实例,循序渐进带你打通并发进阶的关键节点。
> **提示**:建议学习时同步动手编码,每一个案例都经过精心打磨,反复实践才能内化为真正的工程能力。
课程目录
课程目录14 集
- 1-1 [第22章 并发- 线程之间的协作] wait()与notifyAll() (23:57).mp4
- 1-2 [第22章 并发- 线程之间的协作] notify()与notifyAll() (12:45).mp4
- 1-3 [第22章 并发- 线程之间的协作] 生产者和消费者 (16:25).mp4
- 1-4 [第22章 并发- 线程之间的协作] 生产者-消费者与队列:实例1 (18:05).mp4
- 1-5 [第22章 并发- 线程之间的协作] 生产者-消费者与队列:实例2 (12:31).mp4
- 1-6 [第22章 并发- 线程之间的协作] 任务间使用管道进行输入/输出 (09:01).mp4
- 1-7 [第22章 并发- 线程之间的协作] 死锁:死锁形成原因 (07:11).mp4
- 1-8 [第22章 并发- 线程之间的协作] 死锁:举例 (15:00).mp4
- 2-1 [第23章 并发--新类库中的构件] CountDownLatch (12:39).mp4
- 2-2 [第23章 并发--新类库中的构件] CycicBarrier (10:36).mp4
- 2-3 [第23章 并发--新类库中的构件] DelayQueue (09:01).mp4
- 2-4 [第23章 并发--新类库中的构件] PriorityBlockingQueue (04:35).mp4
- 2-5 [第23章 并发--新类库中的构件] 使用ScheduledExecutor的温室控制器 (05:53).mp4
- 2-6 [第23章 并发--新类库中的构件] Semaphore (12:23).mp4






