精华内容
下载资源
问答
  • 同步和异步有何异同,什么场景使用,举例说明! 2016年11月30日 18:47:26 qq_36179561 阅读数:1752更多 个人分类: 基础知识 同步:发送一个请求,等待返回,然后再发送下一个请求  异步:发送一个请求,不等待...

    同步和异步有何异同,什么场景使用,举例说明!

    2016年11月30日 18:47:26 qq_36179561 阅读数:1752更多

    个人分类: 基础知识

    同步:发送一个请求,等待返回,然后再发送下一个请求 
    异步:发送一个请求,不等待返回,随时可以再发送下一个请求

    同步可以避免出现死锁,读脏数据的发生,一般共享某一资源的时候用,如果每个人都有修改权限,同时修改一个文件,有可能使一个人读取另一个人已经删除的内容,就会出错,同步就会按顺序来修改。

    异步则是可以提高效率了,现在cpu都是双核,四核,异步处理的话可以同时做多项工作,当然必须保证是可以并发处理的。

    同步和异步最大的区别就在于。一个需要等待,一个不需要等待。 
    比如发短信,就是一个异步例子。发起者不关心接收者的状态。不需要等待接收者的返回信息,则可以进行下一次发送。 
    电话,就是一个同步例子。发起者需要等待接收者,接通电话后,通信才开始。需要等待接收者的返回信息

    而我们平时经常讨论的同步问题多发生在多线程环境中的数据共享问题。即当多个线程需要访问同一个资源时,它们需要以某种顺序来确保该资源在某一特定时刻只能被一个线程所访问,如果使用异步,程序的运行结果将不可预料。因此,在这种情况下,就必须对数据进行同步,即限制只能有一个进程访问资源,其他线程必须等待。

    实现同步的机制主要有临界区、互斥、信号量和事件 
    临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资 源,那么在有一个线程进入后,其他试图访问公共资源的线程将被挂起,并一直等到进入临界区的线程离开,临界区在被释放后,其他线程才可以抢占。 
    互斥量:采用互斥对象机制。 只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以能保证公共资源不会同时被多个线程访问。互斥不仅能实现同一应用程序的公共资源安全共享,还能实现不同应用程序的公共资源安全共享 .互斥量比临界区复杂。因为使用互斥不仅仅能够在同一应用程序不同线程中实现资源的安全共享,而且可以在不同应用程序的线程之间实现对资源的安全共享。 
    信号量:它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目 。信号量对象对线程的同步方式与前面几种方法不同,信号允许多个线程同时使用共享资源,这与操作系统中的PV操作相同。它指出了同时访问共享资源的线程最大数目。它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目。 
    事件:通过通知操作的方式来保持线程的同步,还可以方便实现对多个线程的优先级比较的操作 。

    展开全文
  • 一、同步执行模式 所谓同步执行模式,是指语句在同步执行模式下,将始终保持对程序流的控制,直至 程序结束。如查询操作,客户机上的应用程序在向服务器发出查询操作的指令后,将 一直等待服务器将查询结果返回客户...

    一、同步执行模式
    所谓同步执行模式,是指语句在同步执行模式下,将始终保持对程序流的控制,直至 程序结束。如查询操作,客户机上的应用程序在向服务器发出查询操作的指令后,将 一直等待服务器将查询结果返回客户机端,然后才继续进行下一步操作。 
    众所周知,应用程序要从一个大表中删除所有的记录将是非常耗时的,如果应用程序 采用的是单线程(thread)同步执行方式,某次删除工作很可能耽误其他重要工作的完 成。如果应用程序等待的是远程任务,那么远程服务器失败或网络故障或一些无法预 知的情况都可能使应用程序无限期地等下去,这是同步执行最大的缺陷。 
    但是同步执行模式可以简化程序编制的复杂性。程序员可以不用过多地了解比较复杂 的ODBC 2.0 API 的使用,而只需使用 ODBC 的同步执行模式或使用数据控制项和数据库对象变量来编写应用程序,可以提高开发效率,但程序运行速度比不上异步执行 模式的速度。 
    二、异步执行模式: 
    所谓异步执行模式,是指语句在异步执行模式下,各语句执行结 束的顺序与语句执行开始的顺序并不一定相同。例如 查询操作,客户机上的应用程序在向服务器发出了查 询操作的指令后,将立刻执行查询语句指令的下一条 语句,而不需要等到服务器将查询结果返回客户机端。 异步执行方式使应用程序能摆 脱单个任务的牵制,提高了灵活性和应用程序的执行 效率。但异步执行模式也存在一些问题,如它增加了 编程的复杂性,特别是编写互用性(interoperable)要求较高 的程序。 
    在负荷很重的客户/服务器系 统中,适宜采用异步执行模式。在这种环境下,时间 延迟频繁且漫长,相比之下异步执行的开销微不足 道。但是,如果应用运行的环境比较复杂,则必须建 立一套完整的机制,周期性地检查函数执行的状态, 以决定下一步执行方案。进行周期的检查可以有多种方法,如在 应用中设置计时器并处理WM_TIMER信息等。 
    虽然使用异步执行模式在编程 序时十分复杂,但可以实现多任务并行执行,使执行的效率大大提高。 
    选择并设置执行模式 在应用程序开发中选择同步模式还是异步模式,是一个比 较复杂的层次。当查询或对数据库的修改相对简单时,同步执行模式是一种 很好的选择,它能够在几秒 或更少的时间内返回结果数据。另外,在应用程序获 得结果集前不能继续执行时,根本不必要使用异步执 行模式。在复杂查询情况下,特别是复杂的多行数据 库的UPDATE 或DELETE 操作,可能需要很长的时间才能完成, 需采用异步执行模式,让用户可以同时对程序的其他 部分进行操作。 
    对于一般程序员来说,如果他对同步执行模式与异步执行模式不了解, 他往往会在对服务器发出一个操作语句(查询或读取一条记录等 操作)后,立该引用服务器返回的执行结果,或者对该 结果进行下一步操作,这是很危险的。因为,在异步 执行模式下,客户机上的后续语句是在该操作语句发 出后接着执行的,但由于各种原因,服务器不一定能 执行完该操作语句,并在后续语句执行前将结果返回 客户机。因此,后续语句在引用前一操作语句的执行 结果时,往往会因为该执行结果并不存在而引用了错 误的值,造成系统错误或死锁,所以在实际应用中应 根据具体情况慎重选择执行模式

    三、异步的使用场景:

    1、不涉及共享资源,或对共享资源只读,即非互斥操作

    2、没有时序上的严格关系

    3、不需要原子操作,或可以通过其他方式控制原子性

    4、常用于IO操作等耗时操作,因为比较影响客户体验和使用性能

    5、不影响主线程逻辑

    四、同步的好处:

    1、同步流程对结果处理通常更为简单,可以就近处理。

    2、同步流程对结果的处理始终和前文保持在一个上下文内。

    3、同步流程可以很容易捕获、处理异常。

    4、同步流程是最天然的控制过程顺序执行的方式。

    五、异步的好处:

    1、异步流程可以立即给调用方返回初步的结果。

    2、异步流程可以延迟给调用方最终的结果数据,在此期间可以做更多额外的工作,例如结果记录等等。

    3、异步流程在执行的过程中,可以释放占用的线程等资源,避免阻塞,等到结果产生再重新获取线程处理。

    4、异步流程可以等多次调用的结果出来后,再统一返回一次结果集合,提高响应效率。
     

    异步请求执行流程:

    展开全文
  • Unity 工具类 之 简单的异步场景加载(包含加载进度和同步加载方法)类 LoadSceneManager 实现 1、单例类,保证整个场景中只有一个类管理场景加载; 2、LoadSceneManager.Instance.LoadSceneAsync 即可异步加载...
  • 同步异步使用场景及好处

    万次阅读 2016-06-02 11:02:15
    异步使用场景: 1、不涉及共享资源,或对共享资源只读,即非互斥操作 ...同步使用场景:不使用异步的时候 同步的好处: 1、同步流程对结果处理通常更为简单,可以就近处理。

    异步的使用场景:

    1、不涉及共享资源,或对共享资源只读,即非互斥操作

    2、没有时序上的严格关系

    3、不需要原子操作,或可以通过其他方式控制原子性

    4、常用于IO操作等耗时操作,因为比较影响客户体验和使用性能

    5、不影响主线程逻辑


    同步的使用场景:不使用异步的时候


    同步的好处:

    1、同步流程对结果处理通常更为简单,可以就近处理。

    2、同步流程对结果的处理始终和前文保持在一个上下文内。

    3、同步流程可以很容易捕获、处理异常。

    4、同步流程是最天然的控制过程顺序执行的方式。

     

    异步的好处:

    1、异步流程可以立即给调用方返回初步的结果。

    2、异步流程可以延迟给调用方最终的结果数据,在此期间可以做更多额外的工作,例如结果记录等等。

    3、异步流程在执行的过程中,可以释放占用的线程等资源,避免阻塞,等到结果产生再重新获取线程处理。

    4、异步流程可以等多次调用的结果出来后,再统一返回一次结果集合,提高响应效率。

    展开全文
  • AJAX中同步和异步的区别和使用场景

    千次阅读 2018-05-09 13:52:55
    AJAX中根据async的值不同分为同步(async = false)和异步(async = true)两种执行方式;在W3C的教程中推荐使用异步执行; 下面来区别一下同步和异步有什么不同: 异步:在异步模式下,当我们使用AJAX发送完请求后...
    文章并非原创,但经过修改,加入了实际案例,原文链接
    点击打开链接
    
    展开全文
  • 最近在工作中遇到了一个问题,所以记录一下,简单来说就是前端需要调用一个流程,但是这个流程的id需要从后台去获取,获取的方式为Ajax方式,但是Ajax方法没有...以下整理了同步和异步的区别,应用场景,这也是我之...
  • 先上两段代码,猜下这两段代码的console.log的执行顺序结果: 代码一: $.ajax({ type: "post", async:true, //不设置此参数的话默认为true url: "/teach
  • 首先问问自己当面试官问到js中的同步和异步,这个问题该怎么回答?理解一个问题无非是what-why-how js同步和异步问题是什么–>为什么会产生异步问题–>如何解决。 一、JavaScript起源 技术的出现,应用场景密切...
  • JS是单线程语言,凡是需要程序等待的都需要采用异步来执行,或者可以说叫程序阻塞 简单介绍: 1.网络请求:ajax请求、动态加载(onLoad方法) console.log(100); $.ajax({ method:‘GET’, url:‘test.php’, success...
  • 异步:发送一个请求,不等待返回,随时可以再发送下一个请求 同步可以避免出现死锁,读脏数据的发生,一般共享某一资源的时候用,如果每个人都有修改权限,同时修改一个文件,有可能使一个人读取另一个人已经删除的内容...
  • Spring Cloud同步场景分布式事务怎样做? https://mp.weixin.qq.com/s/0yCmHzlXDC9BkbUuEt0_fQ Spring Cloud异步场景分布式事务怎样做? https://juejin.im/post/5d88329af265da03951a3181 ...
  • AJAX中根据async的值不同分为同步(async = false)和异步(async = true)两种执行方式;在W3C的教程中推荐使用异步执行; 下面来区别一下同步和异步有什么不同: 异步:在异步模式下,当我们使用AJAX发送完请求...
  • 同步和异步的区别是什么 ...前端使用异步场景有哪些 1. 网络请求,如 ajax请求、图片加载 //ajax请求 console.log('start') $.get('./data.json',function(data){ console.log(data) }) console.log('end')
  • js中的同步和异步的区别理解

    千次阅读 2019-07-31 21:43:38
    js中的同步和异步的区别理解 前端面试中很容易问到的问题就是同步和异步的 <script> setTimeout(function() { console.log(1) }) console.log(2); </script> ...
  • js中的同步和异步

    千次阅读 2018-04-08 10:16:56
    同步和异步的区别是什么?分别举一个同步和异步的例子 一个关于setTimeout的笔试题 前端使用异步场景有哪些 知识点: 什么是异步(对比同步) 前端使用异步场景 异步和单线程 同步和异步的区别? 是否...
  • 阻塞IO模型、非阻塞IO模型、IO复用模型(select/poll/epoll)、信号驱动IO模型都属于同步IO 同步使用场景: 不使用异步的时候 同步的好处: 1、同步流程对结果处理通常更为简单,可以就近处理。 2、同步流程对结果...
  • 同步和异步的区别及优缺点

    万次阅读 多人点赞 2018-11-26 21:41:42
    学习编程,同步异步是必须要理解学习的知识点,同步异步的区别有确定往往都是相对的,各自有各自的使用场景,同步的优点往往就是异步的缺点,反过来亦然。
  • 数据库同步异步操作的使用场景

    千次阅读 2018-09-02 09:41:38
    异步同步 是针对数据来说的 对一个数据的查询如果是异步操作 那么对一个数据的修改也最好要用异步...上面这个情况 因为第一个查询是肯定在第一时间执行 这个时候数据合法性是正确的 而第二个查询如果也使用同步...
  • AJAX同步和异步的区别及使用场景

    千次阅读 2017-11-05 00:02:16
    本文讲的是AJAX同步和异步的特别及使用场景, AJAX中根据async的值不同分为同步(async = false)和异步(async = true)两种执行方式;在W3C的教程中推荐使用异步执行; 下面来区别一下同步和异步有什么不同: 异步:在...
  • 异步累加加载:当场景很大的时候,我们选择先加载主要的,比如地形房屋,花花草草等可以后面再逐步加载,实现分布式加载场景 优点:不会阻塞主线程,不会出现卡顿,不需要等很长时间(不需要全部加载完场景) ...
  • 异步使用场景

    2018-11-07 09:16:53
    Ajax异步使用场景: (1) 比如:登陆成功后的页面加载:加载分页新闻, 原始web同步:登录控制层成功后跳转加载新闻的控制层 先加载完毕所有的页面上的数据,然后再跳转主页面并展示。 Ajax异步:登陆成功后跳转...
  • js异步常见的使用场景 (onload事件,在图片加载完成后执行) 因为setTimeout是在载入后延迟指定时间后,去执行一次表达zhi式,记住,次数是一次 而setInterval则不一样,它从载入后,每隔指定的时间就执行一次表达式...
  • 同步串口和异步串口的区别及使用情况 所谓同步就是等读写操作完了才返回,异步就是一调用马上返回,会有专门的线程进行读写操作,读写完了会通知的。 一个会等待完成,一个不会,前者是同步:后者是异步: 在...
  • 异步使用场景(笔记)

    千次阅读 2018-10-17 16:58:57
    C,AC是我们的,B是别人的,现在有个要求,某一些用户访问B的时候需要等待一些时间,一开始想的是直接用Thread.splee(xxx)来进行等待。但是这样容易造成阻塞。 后来我就想把需要等待的都丢带一个队列里面Queue里面...
  • 网络IO模型:同步IO和异步IO,阻塞IO非阻塞IO
  • unity 场景同步加载和异步加载

    千次阅读 2018-06-26 16:13:29
    同步加载,两种书写形式: public static void LoadScene(int sceneBuildIndex, SceneManagement.LoadSceneMode mode = LoadSceneMode.Single);public static void LoadScene(string sceneName, ...
  • SpringBoot整合异步任务以及使用场景

    千次阅读 2018-11-12 18:25:50
    异步任务执行使用场景 1 发送短信 2 发送邮件 3 App消息推送 4 节省运维凌晨发布任务时间提供效率 二 启动类 package com.imooc; import org.springframework.boot.SpringApplicati...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 161,421
精华内容 64,568
关键字:

同步和异步的使用场景