【后台技术】异步编程指北,问题和重点

本文深入探讨异步编程的概念,包括同步、异步、并发、并行的差异,通过实例分析并发/并行执行时可能遇到的问题,如任务数量控制和共享数据的读写顺序。此外,讨论了状态处理和异常处理策略,提供了解决方案和思考问题,旨在帮助开发者更好地理解和应用异步编程。
摘要由CSDN通过智能技术生成

导语:同步、异步,并发、并行、串行,这些名词在我们的开发中会经常遇到,这里对异步编程做一个详细的归纳总结,希望可以对这方面的开发有一些帮助。

内容大纲:

1、几个名词的概念

多任务的时候,才会遇到的情况,如:同步、异步,并发、并行。

1.1 理清它们的基本概念

并发:多个任务在同一个时间段内同时执行,如果是单核心计算机,CPU会不断地切换任务来完成并发操作。

并行:多任务在同一个时刻同时执行,计算机需要有多核心,每个核心独立执行一个任务,多个任务同时执行,不需要切换。

同步: 多任务开始执行,任务A、B、C全部执行完成后才算是结束。

异步: 多任务开始执行,只需要主任务A执行完成就算结束,主任务执行的时候,可以同时执行异步任务B、C,主任务A可以不需要等待异步任务B、C的结果。

并发、并行,是逻辑结构的设计模式。

同步、异步,是逻辑调用方式。

串行是同步的一种实现,就是没有并发,所有任务一个一个执行完成。

并发、并行是异步的2种实现方式。

1.2 举一个例子

你的朋友在广州,但是有2辆小汽车在深圳,需要你帮忙把这2辆小汽车送到广州去。

同步的方式,你先开一辆小汽车到广州,然后再坐火车回深圳,再开另外一辆小汽车去广州。这是串行的方法,2辆车需要的时间也就更长了。

异步的方式,你开一辆小汽车从深圳去广州,同时请一个代驾把另外一辆小汽车从深圳开去广州。这也就是并行方法,两个人两辆车,可以同时行驶,速度很快。

并发的方式,你一个人,先开一辆车走500米,停车跑回来,再开另外一辆车前行1000米,停车再跑回来,循环从深圳往广州开。并发的方式,你可以把2辆车一块送到朋友手里,但是过程还是很辛苦的。

1.3 思考问题

你找一家汽车托运公司,把2辆车一起托运到广州。这种方式是同步、异步,并发、并行的哪种情况呢?

2、并发/并行执行会遇到的问题

2.1 问题1:并发的任务数量控制

假设:某个接口的并发请求会达到1万的qps,所以对接口的性能、响应时长都要求很高。

接口内部又有大量redis、mysql数据读写,程序中还有很多处理逻辑。如果接口内的所有逻辑处理、数据调用都是串行化,那么单个请求耗时可能会超过100ms,为了性能优化,就会把数据读取的部分与逻辑计算的部分分开来考虑和实现,能够独立的部分单独剥离出来作为异步任务来执行,这样就把串行化的耗时优化为并发执行,充分利用多核计算机的性能,减少单个接口请求的耗时。

 资料领取直通车:大厂面试题锦集+视频教程

Linux服务器学习网站:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值