Java并发编程实战--极客时间课程推荐/优惠
版权声明
本站非极客时间官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。
课程详情
你将获得:
- 全面了解并发编程核心原理;
- 深入掌握12个Java并发工具类;
- 搞懂9种最常见的并发设计模式;
- 4大经典并发编程实战案例。
课程介绍
对于一个Java程序员而言,能否熟练掌握并发编程是判断他优秀与否的重要标准之一。因为并发编程是Java语言中最为晦涩的知识点,它涉及操作系统、内存、CPU、编程语言等多方面的基础能力,更为考验一个程序员的内功。
那到底应该怎么学习并发编程呢?Java SDK的并发工具包有很多,是要死记硬背每一个工具的优缺点和使用场景吗?当然不是,想要学好并发编程,你需要从一个个单一的知识和技术中“跳出来”,高屋建瓴地看问题,并逐步建立自己的知识体系。
本专栏希望能够帮助你建立起一张处理并发问题的全景图,让你能够彻底理解并发问题的本质所在。同时,专栏还会深入介绍Java并发编程技术背后的逻辑关系以及应用场景,助你能够游刃有余地游走在这些技术之中。
专栏共45期,分为5大模块。
1. 并发理论基础
这个模块主要介绍并发编程相关的概念和理论。但不会死板地堆叠结论,而是关注具体概念和理论的产生背景,挖掘它们背后的逻辑关系,发现核心矛盾并寻找解决方案。比如,深度认识Java内存模型、死锁产生的原因和解决方案、线程间的协作机制,等等。
2. 并发工具类
这个模块主要探讨Java SDK里的并发工具类。这些工具类大部分都是基于管程实现的,所以这里会首先介绍隐藏在并发包中的管程及其使用。紧接着还会为你详细解读信号量、读写锁、CountDownLatch和CyclicBarrier,以及并发编程的三个核心问题“分工”“同步”“互斥”相关的技术内容。
3. 并发设计模式
并发设计模式是解决并发问题的最佳实践。这个模块将会介绍9种常见的设计模式。其中,前3种设计模式的核心思想是避免共享变量,从而避免并发问题;后面6种设计模式则都属于典型的分工模式。
4. 案例分析
这个模块着重分析4个经典的开源框架是如何处理并发问题的,包括高性能限流器Guava RateLimiter、高性能网络应用框架Netty、高性能队列Disruptor、高性能数据库连接池HiKariCP,希望能够帮你融会贯通相关知识点,并从实战场景中思考问题的最优解。
5. 其他并发模型
并发问题是一个通用问题,Java语言解决并发问题采用的是共享内存模型,但这个模型并不是解决并发问题唯一的模型。这个模块将会介绍共享内存模型之外的模型,主要有Actor模型、软件事务内存、协程和CSP模型。
课程目录
开篇词
- 开篇词 | 你为什么需要学习并发编程?
学习攻略
- 学习攻略 | 如何才能学好并发编程?
第一部分:并发理论基础
- 01 | 可见性、原子性和有序性问题:并发编程Bug的源头
- 02 | Java内存模型:看Java如何解决可见性和有序性问题
- 03 | 互斥锁(上):解决原子性问题
- 04 | 互斥锁(下):如何用一把锁保护多个资源?
- 05 | 一不小心就死锁了,怎么办?
- 06 | 用“等待-通知”机制优化循环等待
- 07 | 安全性、活跃性以及性能问题
- 08 | 管程:并发编程的万能钥匙
- 09 | Java线程(上):Java线程的生命周期
- 10 | Java线程(中):创建多少线程才是合适的?
- 11 | Java线程(下):为什么局部变量是线程安全的?
- 12 | 如何用面向对象思想写好并发程序?
- 13 | 理论基础模块热点问题答疑
第二部分:并发工具类
- 14 | Lock和Condition(上):隐藏在并发包中的管程
- 15 | Lock和Condition(下):Dubbo如何用管程实现异步转同步?
- 16 | Semaphore:如何快速实现一个限流器?
- 17 | ReadWriteLock:如何快速实现一个完备的缓存?
- 18 | StampedLock:有没有比读写锁更快的锁?
- 19 | CountDownLatch和CyclicBarrier:如何让多线程步调一致?
- 20 | 并发容器:都有哪些“坑”需要我们填?
- 21 | 原子类:无锁工具类的典范
- 22 | Executor与线程池:如何创建正确的线程池?
- 23 | Future:如何用多线程实现最优的“烧水泡茶”程序?
- 24 | CompletableFuture:异步编程没那么难
- 25 | CompletionService:如何批量执行异步任务?
- 26 | Fork/Join:单机版的MapReduce
- 27 | 并发工具类模块热点问题答疑
第三部分:并发设计模式
- 28 | Immutability模式:如何利用不变性解决并发问题?
- 29 | Copy-on-Write模式:不是延时策略的COW
- 30 | 线程本地存储模式:没有共享,就没有伤害
- 31 | Guarded Suspension模式:等待唤醒机制的规范实现
- 32 | Balking模式:再谈线程安全的单例模式
- 33 | Thread-Per-Message模式:最简单实用的分工方法
- 34 | Worker Thread模式:如何避免重复创建线程?
- 35 | 两阶段终止模式:如何优雅地终止线程?
- 36 | 生产者-消费者模式:用流水线思想提高效率
- 37 | 设计模式模块热点问题答疑
第四部分:案例分析
- 38 | 案例分析(一):高性能限流器Guava RateLimiter
- 39 | 案例分析(二):高性能网络应用框架Netty
- 40 | 案例分析(三):高性能队列Disruptor
- 41 | 案例分析(四):高性能数据库连接池HiKariCP
第五部分:其他并发模型
- 45 | CSP模型:Golang的主力队员
- 42 | Actor模型:面向对象原生的并发模型
- 43 | 软件事务内存:借鉴数据库的并发经验
- 44 | 协程:更轻量级的线程
结束语
- 结束语 | 十年之后,初心依旧
- 结课测试 | 这些Java并发编程实战的知识你都掌握了吗?
用户故事
- 用户来信 | 真好,面试考到这些并发编程,我都答对了!
- 3 个用户来信 | 打开一个新的并发世界