首页 > 其他分享 >同步(Sync)和异步(Async)

同步(Sync)和异步(Async)

时间:2022-08-18 19:35:32浏览次数:42  
标签:异步 同步 调用者 Sync 调用 Async 客户端

同步(Sync)和异步(Async)

同步:

所谓同步,就是发出一个功能调用时,在没有得到结果之前,该调用就不返回或继续执行后续操作。

简单来说,同步就是必须一件一件事做,等前一件做完了才能做下一件事。

例如:B/S模式中的表单提交,具体过程是:客户端提交请求->等待服务器处理->处理完毕返回,在这个过程中客户端(浏览器)不能做其他事。

异步:

异步与同步相对,当一个异步过程调用发出后,调用者在没有得到结果之前,就可以继续执行后续操作。当这个调用完成后,一般通过状态、通知和回调来通知调用者。对于异步调用,调用的返回并不受调用者控制。

对于通知调用者的三种方式,具体如下:

状态

即监听被调用者的状态(轮询),调用者需要每隔一定时间检查一次,效率会很低。

通知

当被调用者执行完成后,发出通知告知调用者,无需消耗太多性能。

回调

与通知类似,当被调用者执行完成后,会调用调用者提供的回调函数。

例如:B/S模式中的ajax请求,具体过程是:客户端发出ajax请求->服务端处理->处理完毕执行客户端回调,在客户端(浏览器)发出请求后,仍然可以做其他的事。

同步和异步的区别:

总结来说,同步和异步的区别:请求发出后,是否需要等待结果,才能继续执行其他操作。

标签:异步,同步,调用者,Sync,调用,Async,客户端
From: https://www.cnblogs.com/FinallySSR/p/16599841.html

相关文章

  • 使用SVNSYNC实现多个SVN服务器之间的数据镜像同步复制
    1.源库准备(mastersvn): 1)新建一个普通用户,对整个库有读权限即可,用于连接源库读取数据 #vi/svndata/conf/passwd test=123 #vi/svndata/conf/authz [......
  • Servlet特性研究之异步模式
    Servlet只有同步模型是怎样的?异步处理是Servlet3.0版本的重要功能之一,分析异步处理模型之前,先看看同步处理的过程是怎样的:客户端发起HTTP请求一个动态ServletAPI,请求......
  • git submodule sync --recursive
     在为父级项目拉取更新时,还会出现一种特殊的情况:在你拉取的提交中,可能.gitmodules文件中记录的子模块的URL发生了改变。比如,若子模块项目改变了它的托管平台,就会......
  • .NET 异步编程模式 (四)-TAP
    TAP是基于任务的异步模式,在.NETFramework4中引入。TAP取代了APM和EAP,是推荐的异步编程模式。async/awaitasync和await是为异步编程提供的语法糖,方便我们快捷......
  • javascript 执行机制(同步、异步、微任务、宏任务)
    一、关于javascriptJS是一门单线程语言,这意味着所有的任务都需要排队,前一个任务结束才会执行后一个任务如果前一个任务耗时很长,后一个任务就不得不一直等着。这样所导致的......
  • 【前端基础】(二)promise异步编排
    ☆promise异步编排javascript众所周知只能支持单线程,因此各种网络请求必须异步发送,导致可能会出现很多问题,比如如下我们有三个文件,现在要求进行如下请求:①查出当前用户......
  • C#异步编程
    一直不是太懂,唉使用Async和Await的任务异步编程(TAP)模型(C#)|MicrosoftDocsC#彻底搞懂async/await-五维思考-博客园(cnblogs.com)C#之Async/Await-......
  • @Async异步方法对异常的处理,从内层向外层抛出机制
    @Async异步方法对异常的处理,从内层向外层抛出机制@RequestMapping(value="/test",method=RequestMethod.GET)publicStringtest(){try{......
  • Python爬虫之多线程异步爬虫,非常详细
    Python爬虫之多线程爬虫在使用Python的过程中,我们可能遇到这样一个场景,需要下载某一个网站上的多个资源;例如:我们想下载豆瓣电影Top250所有的宣传图片具体代码如下......
  • 奇淫巧技,CompletableFuture 异步多线程是真的优雅
     一个示例回顾Future一些业务场景我们需要使用多线程异步执行任务,加快任务执行速度。JDK5新增了Future接口,用于描述一个异步计算的结果。虽然Future以及相关使用......