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

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

个人分类: 基础知识

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

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

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

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

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

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

同步和异步有何异同,什么场景使用相关推荐

  1. java 同步与异步区别_同步和异步有何异同,在什么情况下分别使用它们?

    2015-05-12 06:30:01 阅读( 4 ) 通俗版:举个例子:普通B/S模式(同步)AJAX技术(异步) 同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器 ...

  2. setstate是同步还是异步_谈谈 IO模型:同步、异步、阻塞、非阻塞

    同步/异步.阻塞/非阻塞 说的是一回事儿吗? 同步/异步.阻塞/非阻塞 你能通俗易懂的讲清楚吗? Java 中的 BIO.NIO.AIO 你了解吗? Socket 编程你还会吗? Linux 操作系统 ...

  3. mysql主从是同步还是异步_mysql主从同步异步场景的分析

    之所以进行这块内容的研究,主要针对之前遇到的两个未解的疑惑: a. 线上有个系统,半同步状态经常从半同步变成异步,然后又马上恢复为半同步,具体原因未明,虽然之前也猜得八九不离十,但还是未完全确定. b ...

  4. OpenVINO™场景文字识别与同步与异步推理

    场景文字检测与识别模型 OpenVINO2021.4支持场景文字检测是基于MobileNetV2的PixelLink模型,模型有两个分别是text-detection-0003与text-detect ...

  5. 同步和异步有什么区别,分别在什么场景下使用

    最近在工作中遇到了一个问题,所以记录一下,简单来说就是前端需要调用一个流程,但是这个流程的id需要从后台去获取,获取的方式为Ajax方式,但是Ajax方法没有设置为同步,导致function方法里面的 ...

  6. AJAX怎么实现同步请求?Ajax同步和异步请求有什么区别以及使用场景有哪些?

    一.AJAX怎么实现同步请求? ajax请求我们分为同步请求和异步请求,但是默认的都是异步请求,那么,当我们想用ajax同步请求时,我们该如何去实现这个同步请求呢?接下来的这篇文章就来给大家介绍一下关 ...

  7. java中同步和异步简介及应用场景

    转自: java中同步和异步简介及应用场景 同步: 同步指两个或两个以上随时间变化的量在变化过程中保持一定的相对关系. 本意是指某人或某事同时进行:同时产生,比如音画同步.动作同步等. 同步,指对在一 ...

  8. setstate是同步还是异步_【vert.x准备篇1】同步和异步,阻塞和非阻塞概念澄清

    为了能更好的理解vert.x的线程模型,我们必须要先明确几个概念:同步(Synchronous)和异步(Asynchronous),阻塞(Blocking)和非阻塞(Non-Blocking).关于这 ...

  9. 这次,让我们捋清:同步、异步、阻塞、非阻塞

    继上一篇说透I/O模型后,我们来谈谈网络 I/O 经常会伴随的几个容易令人混淆的概念:同步.异步.阻塞.非阻塞的区别. 这篇写完之后铺垫就差不多了,之后就正式开始 Netty 深度剖析了,敬请期待,嘻 ...

最新文章

  1. 深度学习编译与优化Deep Learning Compiler and Optimizer
  2. 超链接浏览meta name=format-detection/ 的用法
  3. linux c 内存操作函数 简介
  4. linux socket文件数限制,Linux下高并发socket最大连接数所受的限制问题
  5. 18. 4Sum 四数之和
  6. Android之Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置
  7. php处理结果集,php中mysqli 处理查询结果集的几个方法
  8. python定义空array_Python惯用技巧
  9. linux双系统启动项grub,grub双系统启动顺序更改
  10. 外点罚函数matlab程序_关于图像轮廓识别的程序实现
  11. leetcode [26] 删除排序数组中的重复项 / Remove Duplicates from Sorted Array
  12. unity去掉物体的阴影
  13. 利用函数求三个数的最大值
  14. 通过对比3PL和4PL,来了解什么是4PL
  15. 从live555 实战中了解MakeFile
  16. [JZOJ1901] 【2010集训队出题】光棱坦克
  17. 黑进诈骗网站,瞅瞅电信诈骗是怎么悄无声息转走被害人资金的
  18. Ubuntu 安装SRT
  19. 【区间dp】洛谷 P1220 关路灯
  20. windows使用laragon配置开发环境

热门文章

  1. Java ASM与Javassit
  2. HDU6956-Pass!(2021杭电多校一)(BSGS)
  3. bzoj4543. [POI2014]Hotel加强版
  4. C - Log Calculator FZU - 2036
  5. 数据结构二之线段树Ⅱ——KiKi‘s K-Number,ball,The Child and Sequence,「雅礼集训 2017 Day1」市场,Atlantis
  6. AT5661-[AGC040C]Neither AB nor BA【模型转换】
  7. 牛客练习赛79E-小G的数学难题【dp,单调队列】
  8. P4587-[FJOI2016]神秘数【主席树】
  9. P3224-[HNOI2012]永无乡【平衡树,启发式合并】
  10. P5283-[十二省联考2019]异或粽子【可持久化Trie,堆】