Java并发编程入门与高并发面试
构建并发编程知识体系,提升面试成功率
本课程将结合大量图示及代码演示,带你掌握多线程并发编程(线程安全,线程调度,线程封闭,同步容器等)与高并发处理思路与手段(扩容,缓存,队列,拆分等),构建完整的并发与高并发知识体系,胜任实际开发中并发与高并发问题的处理,倍增高薪面试成功率!
适合人群及技术储备要求
无论面试还是实际开发,几乎都会触及并发相关常识及高并发相关场景处理,假如你想系统的学习一下并发编程
并了解一下实际的高并发场景及应对计划,那这门课就是为你准备的
技术储备要求:
有Java编程根底 / 有Linux根底 / 有MySQL根底 / 至少一个Java项目开发经历
章节目录:
-
第1章 课程准备(入门课程) 试看6 节 | 42分钟
课程目标:Java并发编程入门,合适没有并发编程经历的同学,本章首要从课程要点、特色、合适人群及学习收成几个方面对课程进行全体的介绍,然后会从一个实践的计数场景完成开始,给我们展示多线程并发时的线程不安全问题,让我们可以初体验到并发编程,之后会解说并发和高并发的概念,并经过比照让我们理解到底什么是并发和…
- 图文:1-1 课前必读(不看会错失一个亿)
- 视频:1-2 课程导学 (07:32)试看
- 视频:1-3 并发编程初体验 (04:33)
- 视频:1-4 并发与高并发基本概念(选看) (06:06)
- 视频:1-5 JAVA内存模型 (18:17)
- 视频:1-6 并发的优势与风险(选看) (05:01)
-
第2章 准备工作4 节 | 48分钟
本章首要是为课程里代码演示做必要的准备。首要会根据SpringBoot快速搭建一个便利演示的Java项目,然后简略介绍一下码云及代码的办理。项目搭建好,我会运用简略的比如演示一下并发的模拟验证,首要包含对东西Postman、JMeter、Apache Bench(AB)的运用,以及运用并发的代码来验证并发处理的正确性。…
- 视频:2-1 事例环境初始化 (09:42)
- 视频:2-2 事例准备工作 (04:32)
- 视频:2-3 并发模拟-东西 (21:54)
- 视频:2-4 并发模拟-代码 (10:59)
-
第3章 线程安全性解说 试看5 节 | 70分钟
本章解说线程安全性,首要从原子性、可见性、有序性三个方面进行解说。原子性部分,会具体解说atomic包下相关类、CAS原理、Unsafe类、synchronized关键字等的运用及注意事项。可见性部分,首要介绍的是volatile关键字的规矩和运用,及synchronized关键字的可见性。有序性部分,则要点解说了happens-before准则。这儿触及到…
- 视频:3-1 线程安全性-原子性-atomic-1 (16:36)试看
- 视频:3-2 线程安全性-原子性-atomic-2 (15:55)
- 视频:3-3 线程安全性-原子性-synchronized (18:42)
- 视频:3-4 线程安全性-可见性 (10:08)
- 视频:3-5 线程安全性-有序性与总结 (07:50)
-
第4章 安全发布目标解说3 节 | 35分钟
本章首要解说安全发布目标的一些中心办法,首要经过单例类的多种完成方式,让我们在完成过程中去体会这些办法的具体含义。这一章也是对线程安全性的稳固,也是把线程安全性触及的一些关键字和类再一次放到实践场景中运用,加深我们对他们的形象和知道。…
- 视频:4-1 安全发布目标-发布与逸出 (08:36)
- 视频:4-2 安全发布目标-四种办法-1 (12:45)
- 视频:4-3 安全发布目标-四种办法-2 (13:07)
-
第5章 线程安全战略解说8 节 | 135分钟
本章首要解说线程安全战略,包含定义不可变目标、线程关闭、同步容器、并发容器等,引出并发里的关键常识J.U.C。同时还额外介绍了开发中常见的一些线程不安全类和写法,并给出他们各自对应的替代计划。这一章触及的内容在日常开发和面试中都会触及许多。…
- 视频:5-1 不可变目标-1 (13:48)
- 视频:5-2 不可变目标-2 (10:25)
- 视频:5-3 线程关闭 (30:21)
- 视频:5-4 线程不安全类与写法-1 (15:45)
- 视频:5-5 线程不安全类与写法-2 (15:09)
- 视频:5-6 同步容器-1 (13:27)
- 视频:5-7 同步容器-2 (13:17)
- 视频:5-8 并发容器及安全同享战略总结 (21:45)
-
第6章 J.U.C之AQS解说6 节 | 85分钟
AQS是J.U.C的重要组件,也是面试的重要考点。这一章里将要点解说AQS模型规划及相关同步组件的原理和运用,都非常实用,具体包含:CountDownLatch、Semaphore、CyclicBarrier、ReentrantLock与锁、Condition等。这些组件需求我们能熟练理解他们的用途及差异,不光会运用,并且还要清晰知道不同办法调用后的不同作用。…
- 视频:6-1 J.U.C之AQS-介绍 (06:55)
- 视频:6-2 J.U.C之AQS-CountDownLatch (14:27)
- 视频:6-3 J.U.C之AQS-Semaphore (12:13)
- 视频:6-4 J.U.C之AQS-CyclicBarrier (17:25)
- 视频:6-5 J.U.C之AQS-ReentrantLock与锁-1 (15:58)
- 视频:6-6 J.U.C之AQS-ReentrantLock与锁-2 (17:55)
-
第7章 J.U.C组件拓展4 节 | 31分钟
这一章持续解说J.U.C相关组件,首要包含FutureTask、Fork/Join结构、BlockingQueue,其间FutureTask解说时会比照着Callable、Runnable、Future来讲。这些组件运用场景相对AQS会少一些,但也是J.U.C的重要组成部分,也是需求掌握的。
- 视频:7-1 J.U.C-FutureTask-1 (03:49)
- 视频:7-2 J.U.C-FutureTask-2 (09:14)
- 视频:7-3 J.U.C-ForkJoin (09:21)
- 视频:7-4 J.U.C-BlockingQueue (07:49)
-
第8章 线程调度-线程池解说3 节 | 38分钟
本章解说J.U.C里终究一部分:线程池。面试大概率会问到线程池相关的常识点。这一章将首要从new Thread坏处、线程池的优点、ThreadPoolExecutor具体介绍(参数、状况、办法)、线程池类图、Executor结构接口等进行解说,需求我们能了解线程池的许多细节及配置,并能在实践项目中正确运用。…
- 视频:8-1 线程池-1 (12:39)
- 视频:8-2 线程池-2 (08:50)
- 视频:8-3 线程池-3 (15:43)
-
第9章 多线程并发拓展解说5 节 | 40分钟
本章会对并发编程做些弥补,但都贴近当时的面试,首要解说死锁发生的条件及预防、多线程并发编程的最佳实践、Spring与线程安全、以及面试都特别喜欢问的HashMap和ConcurrentMap源码细节。当然,面试喜欢问的问题,对实践项目开发也是特别重要的。…
- 视频:9-1 死锁 (12:51)
- 视频:9-2 并发最佳实践 (05:47)
- 视频:9-3 Spring与线程安全 (04:39)
- 视频:9-4 HashMap与ConcurrentHashMap解析 (12:50)
- 视频:9-5 多线程并发与线程安全总结 (03:46)
-
第10章 高并发之扩容思路1 节 | 12分钟
高并发部分:主讲思路,偏重面试,本章首要讲扩容思路,首要介绍笔直扩容和水平扩容的差异,之后介绍数据库读操作扩展和写操作扩展思路。
- 视频:10-1 扩容思路解说 (11:35)
-
第11章 高并发之缓存思路 试看5 节 | 63分钟
高并发部分:主讲思路,本章解说高并发中缓存计划。包含对缓存特征(命中率、最大元素、清空战略)、影响缓存命中率因素、缓存分类和运用场景(本地缓存、分布式缓存)、高并发场景下缓存常见问题(缓存一致性、缓存并发、缓存穿透、雪崩)等的具体介绍。此外,针对我们常用的缓存组件Guava Cache、Memcache、Redis也做了…
- 视频:11-1 缓存-特征、场景及组件介绍-1 (11:54)试看
- 视频:11-2 缓存-特征、场景及组件介绍-2 (13:03)
- 视频:11-3 缓存-redis的运用解说-1 (09:46)
- 视频:11-4 缓存-redis的运用解说-2 (15:08)
- 视频:11-5 缓存-高并发场景问题解说 (12:48)
-
第12章 高并发之音讯行列思路3 节 | 30分钟
高并发部分:主讲思路,本章介绍了音讯行列的特性(事务无关、FIFO、容灾、性能)、为什么需求音讯行列以及音讯行列的优点(事务解耦、终究一致性、广播、错峰与流控),终究对当时比较盛行的音讯行列组件kafka和rabbitmq做了架构分析和特性介绍,如需深入学习请移步:https://coding.imooc.com/class/262.html。…
- 视频:12-1 音讯行列介绍-1 (05:55)
- 视频:12-2 音讯行列介绍-2 (11:07)
- 视频:12-3 音讯行列介绍-3 (12:23)
-
第13章 高并发之运用拆分思路2 节 | 24分钟
本章直接从实践项目拆分步骤讲起,让我们可以实践感受到运用拆分的优点和解决的问题,之后引出对运用拆分准则(事务优先、循序渐进、兼顾技能、可靠测验)和运用拆分时思考的内容(运用之间通信、运用之间数据库规划、避免事务跨运用),并引出对服务化Dubbo和微服务Spring Cloud的结构介绍。…
- 视频:13-1 运用拆分思路-1 (06:43)
- 视频:13-2 运用拆分思路-2 (17:08)
-
第14章 高并发之运用限流思路3 节 | 24分钟
高并发部分:主讲思路,本章从实践项目保存百万数据的限流场景开始讲起,让我们感受一下某些高并发场景下运用限流和不运用限流的差异,清晰限流的重要作用。之后具体介绍了限流常用的四种算法:计数法、滑动窗口、漏桶算法和令牌桶算法,并对他们做了简略的比照。…
- 视频:14-1 运用限流思路-1 (05:28)
- 视频:14-2 运用限流思路-2 (06:58)
- 视频:14-3 运用限流思路-3 (11:18)
-
第15章 服务降级与服务熔断思路2 节 | 36分钟
主讲思路,本章首要经过举例让我们理解什么是服务降级和服务熔断,之后介绍了服务降级的分类:主动降级(超时、失利次数、毛病、限流)和人工降级(开关),总结了服务降级和服务熔断的共性(意图、终究表现、粒度、自治)和差异(动身原因、办理目标层次、完成方式)以及服务降级要考虑的问题。终究介绍了Hystrix在服务降…
- 视频:15-1 服务降级与服务熔断思路-1 (19:36)
- 视频:15-2 服务降级与服务熔断思路-2 (16:18)
-
第16章 数据库分库分表与高可用手段2 节 | 13分钟
高并发部分:主讲思路,本章从数据库瓶颈开始讲起,引出对数据库切库分库分表的介绍。数据库切库里要点介绍了读写别离的规划,比照支持多数据源和分库的差异;终究介绍了什么时候该考虑分表、横向分表与纵向分表,以及经过mybatis的分页插件shardbatis2.0完成数据库分表。之后介绍了高可用的三个常用手段:任务调度系统分布…
- 视频:16-1 数据库切库分库分表思路 (07:45)
- 视频:16-2 高可用一些手段 (04:55)
-
第17章 课程总结1 节 | 14分钟
本章首要对本课程的常识进行总结回顾,然后针对面试中的并发问题与高并发问题进行提问,希望我们都能有所收成,并期待与我们一起探讨并发与高并发的论题。
- 视频:17-1 课程总结 (13:38)