【并发编程】前言
在之前无意中看到有群友关于:业务中尽量不要使用并发编程和线程池一文中,引发了几点思考:对于不熟悉并发编程的开发者,引入并发设计确实会导致意想不到的问题出现,增加了维护难度和周期;但是现实在某些设计场景中,我们无法避免这种设计,并发带来的好处显而易见。
今年再重温了几遍并发设计后,我想把现有的知识点总结起来,一方面是针对目前并发编程的积累,另一方面是我在各种资料中发现很多知识点描述的很片面,我之前的文章中也类似,只是针对某一个组件、某一个场景的解析,但这并不足以应对开发任务中各种问题。
-
目录
在并发编程中,我们往往会遇到以下问题:
- 我们很多业务就是基础的crud,是否意味着我可以不需要掌握这些技能也能很好的完成任务?
- jvm层面的并发处理优化已经做的很好,我们如何更加得心应手的使用它?
- 资源层面的并发,我们又改如何学习?
(一)线程详解、线程与线程池
后文主要会以这几点进行整理:
- 在jdk中的并发,包括Lock、synchronized、多线程、锁、JMM模型、JUC模型、并发设计
- 主流的中间件并发设计,如:Zookeeper、Redis、Rocket、Kafka等等...
- 资源连接,NIO、Reactor、Netty...
- spring生态对并发的应用,nacos、springcloud&alibaba、Nginx、sentinal、tomcat...
- 基于一些基本网络、keepAlive以及部分jvm的知识
我希望能用我自己的理解,将这部分知识串起来,编写时错误及不合理的地方请大佬及时指点,感谢!
本文来自博客园,作者:青柠_fisher,转载请注明原文链接:https://www.cnblogs.com/oldEleven/p/17848953.html