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


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

    内容大纲:

    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服务器学习网站:

  • 相关阅读:
    传统算法与神经网络算法,神经网络运用的算法有
    07.适配器模式设计思想
    斑马打印机二维码标签制作(.prn文件)基础简单快速上手
    Kafka-4.1-工作原理综述
    组装式应用为何成为十二大技术趋势
    金融业务系统: Service Mesh用于安全微服务集成
    hive3升级
    2小时开发《点球射门游戏》,动画演示思路(上),代码已开源
    十五、ECharts可视化库的使⽤
    vue修改node_modules打补丁步骤和注意事项
  • 原文地址:https://blog.csdn.net/weixin_52183917/article/details/128008014