【高并发】学好并发编程,必须掌握这些核心知识体系!!

写在前面

很多小伙伴问我:我在大学时候就学习了多线程,工作后,自己也看过不少有关多线程和并发编程的书籍和视频,为啥真正到工作的时候,我还是不知道在项目中哪里会用到并发编程。我知道有关于并发编程的各个知识点,但是没办法将这些知识点串起来,形成知识体系。冰河,你能不能推一篇文章,讲讲如何学习并发编程,如何将并发编程的各个知识点串成知识体系呢?今天,我们就一起来探讨下有关于并发编程的核心知识体系。

有关更多并发编程的知识,小伙伴们可以到【高并发专题】进行系统学习。

高并发专题的链接地址为:http://r6d.cn/r8x4

并发编程的核心

我们先来看下并发编程的三大核心知识图。

在这里插入图片描述

核心问题

要想学好并发编程,首先要理解三个核心的问题:分工,同步和协作(《【高并发】要想学好并发编程,关键是要理解这三个核心问题》)。

诡异的问题

并发编程并不像普通业务中的CRUD那么简单,往往在并发编程中会出现各种各样诡异的Bug问题(《【高并发】导致并发编程频繁出问题的“幕后黑手”》),而且这些问题也不好复现。究其根本原因,是操作系统的CPU与内存和I/O存在速度差异,而操作系统和编译器在解决这些速度差异带来的问题时,又引入了可见性(《【高并发】解密导致诡异并发问题的第一个幕后黑手——可见性问题》)、原子性(《【高并发】解密导致并发问题的第二个幕后黑手——原子性问题》)、有序性(《【高并发】解密导致并发问题的第三个幕后黑手——有序性问题》)问题,而这三个核心问题,就是导致并发编程出现各种诡异Bug的根本所在。

如何解决问题

在Java中,如何解决并发编程中的可见性、原子性和有序性问题呢?在Java中提供了内存模型和互斥锁的方案来解决这些问题。在Java的内存模型中,有一个很重要的原则,那就是:Happens-Before原则(《何为Happens-Before原则?这次彻底懂了!》)。通过Java的内存模型,能够解决可见性和有序性问题(《【高并发】如何解决可见性和有序性问题?这次彻底懂了!》),对于如何解决原子性问题,我们使用的是互斥锁方案(《【高并发】如何使用互斥锁解决多线程的原子性问题?这次终于明白了!》)。

互斥锁带来的问题

互斥锁在是解决并发问题的核心方案,但是一不留神就会引起死锁(《【高并发】高并发环境下诡异的加锁问题(你加的锁未必安全)》、《【高并发】优化加锁方式时竟然死锁了!!》)

优化加锁方式

既然互斥锁会带来死锁的问题,那我们如何优化加锁的方式呢?(《【高并发】高并发场景下如何优化加锁方式?看完这篇我确实明白了!!》)

线程知识

线程的生命周期(《【高并发】线程的生命周期其实没有我们想象的那么简单!!》)、高并发场景下我们到底创建多少线程合适(《【高并发】高并发场景下创建多少线程才合适?一条公式帮你搞定!!》)?为什么局部变量就是线程安全的(《【高并发】终于弄懂为什么局部变量是线程安全的了!!》)?为什么很多小伙伴面试会栽在InterruptedException上(《【高并发】由InterruptedException异常引发的思考》)?我可以用Java中的面向对象的思想写好并发程序,你信吗(《【高并发】信不信?以面向对象的思想是可以写好高并发程序的!》)?

核心案例

秒杀系统架构解密(《【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!》)

分布式锁架构解密(《【高并发】高并发分布式锁架构解密,不是所有的锁都是分布式锁!!》)

分布式限流理论(《【高并发】如何实现亿级流量下的分布式限流?这些理论你必须掌握!!》)

分布式限流算法(《【高并发】如何实现亿级流量下的分布式限流?这些算法你必须掌握!!》)

实现HTTP接口限流(《【高并发】亿级流量场景下如何为HTTP接口限流?看完我懂了!!》)

实现分布式限流(《【高并发】亿级流量场景下如何实现分布式限流?看完我彻底懂了!!》)

更多内容

有关更多并发编程的知识,小伙伴们可以到【高并发专题】进行系统学习。

高并发专题的链接地址为:http://r6d.cn/r8x4

好了,今天就到这儿吧,我是冰河,我们下期见!

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰 河

可以吃鸡腿么?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值