Java并发编程实战极客时间
【课程介绍】
对于一个Java程序员而言,能否熟练掌握并发编程是判断他优秀与否的重要标准之一。因为并发编程是Java语言中最为晦涩的知识点,它涉及操作系统、内存、CPU、编程语言等多方面的基础能力,更为考验一个程序员的内功。
那到底应该怎么学习并发编程呢?Java SDK的并发工具包有很多,是要死记硬背每一个工具的优缺点和使用场景吗?当然不是,想要学好并发编程,你需要从一个个单一的知识和技术中“跳出来”,高屋建瓴地看问题,并逐步建立自己的知识体系。
本专栏希望能够帮助你建立起一张处理并发问题的全景图,让你能够彻底理解并发问题的本质所在。同时,专栏还会深入介绍Java并发编程技术背后的逻辑关系以及应用场景,助你能够游刃有余地游走在这些技术之中。
专栏共45期,分为5大模块。
1. 并发理论基础
这个模块主要介绍并发编程相关的概念和理论。但不会死板地堆叠结论,而是关注具体概念和理论的产生背景,挖掘它们背后的逻辑关系,发现核心矛盾并寻找解决方案。比如,深度认识Java内存模型、死锁产生的原因和解决方案、线程间的协作机制,等等。
这个模块主要介绍并发编程相关的概念和理论。但不会死板地堆叠结论,而是关注具体概念和理论的产生背景,挖掘它们背后的逻辑关系,发现核心矛盾并寻找解决方案。比如,深度认识Java内存模型、死锁产生的原因和解决方案、线程间的协作机制,等等。
2. 并发工具类
这个模块主要探讨Java SDK里的并发工具类。这些工具类大部分都是基于管程实现的,所以这里会首先介绍隐藏在并发包中的管程及其使用。紧接着还会为你详细解读信号量、读写锁、CountDownLatch和CyclicBarrier,以及并发编程的三个核心问题“分工”“同步”“互斥”相关的技术内容。
这个模块主要探讨Java SDK里的并发工具类。这些工具类大部分都是基于管程实现的,所以这里会首先介绍隐藏在并发包中的管程及其使用。紧接着还会为你详细解读信号量、读写锁、CountDownLatch和CyclicBarrier,以及并发编程的三个核心问题“分工”“同步”“互斥”相关的技术内容。
3. 并发设计模式
并发设计模式是解决并发问题的最佳实践。这个模块将会介绍9种常见的设计模式。其中,前3种设计模式的核心思想是避免共享变量,从而避免并发问题;后面6种设计模式则都属于典型的分工模式。
并发设计模式是解决并发问题的最佳实践。这个模块将会介绍9种常见的设计模式。其中,前3种设计模式的核心思想是避免共享变量,从而避免并发问题;后面6种设计模式则都属于典型的分工模式。
4. 案例分析
这个模块着重分析4个经典的开源框架是如何处理并发问题的,包括高性能限流器Guava RateLimiter、高性能网络应用框架Netty、高性能队列Disruptor、高性能数据库连接池HiKariCP,希望能够帮你融会贯通相关知识点,并从实战场景中思考问题的最优解。
这个模块着重分析4个经典的开源框架是如何处理并发问题的,包括高性能限流器Guava RateLimiter、高性能网络应用框架Netty、高性能队列Disruptor、高性能数据库连接池HiKariCP,希望能够帮你融会贯通相关知识点,并从实战场景中思考问题的最优解。
5. 其他并发模型
并发问题是一个通用问题,Java语言解决并发问题采用的是共享内存模型,但这个模型并不是解决并发问题唯一的模型。这个模块将会介绍共享内存模型之外的模型,主要有Actor模型、软件事务内存、协程和CSP模型。
******