• 异步和多线程,简单说,多线程是实现异步的方法之一


    前言

    异步和多线程是程序员会经常遇到的问题,简单说,他们的区别与联系是,多线程是实现异步的方法之一,异步的实现方式可以有多种,异步是为了不阻塞程序的运行,多线程是为了并发性高。

    异步:

    在异步模型中,允许同一时间发生(处理)多个事件。程序调用一个耗时较长的功能(方法)时,它并不会阻塞程序的执行流程,程序会继续往下执行。当功能执行完毕时,程序能够获得执行完毕的消息或能够访问到执行的结果(如果有返回值或需要返回值时)。
    异步编程中,通常会针对比较耗时的功能提供一个函数,函数的参数中包含一个额外的参数,用于回调。而这个函数往往称作回调函数。当比较耗时的功能执行完毕时,通过回调函数将结果返回。

    多线程:

    多线程是指同时并发或并行执行多个指令(线程)。

    在单核处理器上,多线程往往会给人程序是在并行执行的错觉。实际上,处理器是通过调度算法在多线程之间进行切换和调度。或者根据外部输入(中断)和线程的优先级的组合来进行线程的切换。

    在多核处理器上,线程才是真正的并行运行。多个处理器同时执行多个线程,以达到更加高效的处理。

    一个简单的示例就是:开启两个浏览器窗口同时下载两个文件。每个窗口都使用一个新的线程去下载文件,它们之间并不需要谁等待谁完成,而是并行进行下载。

    异步与多线程的区别

    通过上面的介绍,我们可以看出多线程都是关于功能的并发执行。而异步编程是关于函数之间的非阻塞执行,我们可以将异步应用于单线程或多线程当中。

    因此,多线程只是异步编程的一种实现形式。

    多线程是程序设计的逻辑层概念,它是进程中并发运行的一段代码,可以实现线程间的切换执行。

    异步和同步是相对的,异步就是彼此独立,在等待某事件的过程中继续做自己的事,不需要等待这一事件完成后再工作。

    多线程就是实现异步的一个方式。异步是让调用方法的主线程不需要同步等待另一线程的完成,从而可以让主线程干其它的事情。

    所以本质上,异步和多线程并不是一个同等关系,异步是最终目的,多线程只是实现异步的一种手段。

    总结

    多线程和异步不是等价关系,多线程是实现异步的方法之一。

  • 相关阅读:
    朗强科技:HDMI网线延长器有什么优势
    java基于微信小程序的社区疫情防控系统 uniapp 小程序
    【搭建私人图床】本地PHP搭建简单Imagewheel云图床,在外远程访问
    [附源码]计算机毕业设计springboot自行车租赁管理系统
    python+django高速公路收费管理系统的设计
    云原生时代---带你了解火爆的Quarkus技术
    mysql,redis导入导出数据库数据
    Linux - 进一步理解 文件系统 - inode - 机械硬盘
    基于轻量级目标检测模型实现手写汉字检测识别计数
    css实现一个温度计图表
  • 原文地址:https://blog.csdn.net/qq_41841073/article/details/127785233