zoukankan      html  css  js  c++  java
  • 同步(Synchronous)和异步(Asynchronous)方法的区别

    同步(Synchronous)和异步(Asynchronous)方法的区别

    在讲之前,我们先来看《Computer Organization》中对于同步和异步的一个例子:

    同步读写和异步读写的区别:

    同步读写:以读为例

    1. 处理器在第一个时钟周期将一个内存地址放到地址总线中,这一过程可能涉及到多条状态总线。当地址线建立后,处理器发出一个信号。
    2. 处理器在第二个时钟周期对内存发出读的信号,内存中的一个模块识别输送过来的地址
    3. 一个时钟周期后,该模块将数据放到数据总线上
    4. 处理器读取数据并取消读的信号。

    异步操作:以读为例

    1. 处理器将地址和数据放到对应的线上,在等待这些数据建立之后,将这些数据和读的命令一并发出
    2. 内存解码地址,将数据放到地址总线上
    3. 等到地址通道建立好后,内存中的模块通过ackownledged line(我不知道怎么翻译恰当···)通知处理器数据已经加载完成了
    4. master读取数据并取消读信号
    5. 4导致内存中的模块主动断掉数据连线和ackownledged line
    6. ackownledged line断掉之后,master消除地址信息

    同步的一个问题在于,“all devices on a synchronous bus are tied to
    a fixed clock rate, the system cannot take advantage of advances in device performance ”,这一点也好理解,同步读要求内存在一个时钟周期中准备好数据,也要求CPU在一个时钟周期中准备好address linesignal line的标识,但是CPU和内存的速度差异是很大的,当然一个时钟周期已经是最小单位了,但是如果再慢一点的设备呢,它就没有办法赶上这条bus这么快的速度了。而“With asynchronous timing, a mixture of slow and fast devices, using older
    and newer technology, can share a bus ”,可以理解:由于异步方法是靠信号进行控制的,并不依赖于时钟,所以使得各种设备都能在一条bus上运行。

    贴上两个其他博主的解释:

    同步和异步通常用来形容一次方法调用。

    同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。
    异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而,异步方法通常会在另外一个线程中,“真实”地执行着。整个过程,不会阻碍调用者的工作。
    ————————————————
    版权声明:本文为CSDN博主「半笙彷徨」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/wang704987562/article/details/79827609

    同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。是一种线性执行的方式,执行的流程不能跨越。一般用于流程性比较强的程序,比如用户登录,需要对用户验证完成后才能登录系统。

    异步则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕;而是继续执行下面的流程。是一种并行处理的方式,不必等待一个程序执行完,可以执行其它的任务,比如页面数据加载过程,不需要等所有数据获取后再显示页面。

    他们的区别就在于一个需要等待,一个不需要等待,在部分情况下,我们的项目开发中都会优先选择不需要等待的异步交互方式,比如日志记录就可以使用异步方式进行保存。
    ————————————————
    版权声明:本文为CSDN博主「shiyonghm」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/shiyong1949/article/details/80854656

  • 相关阅读:
    C语言寒假大作战01
    C语言|博客作业12-学期总结
    第一次作业
    C语言|博客作业11
    C语言|博客作业10
    Centos7上安装 sqlmap 所经历的坑
    软件工程1916|W(福州大学)_助教博客】助教总结
    软件工程1916|W(福州大学)_助教博客】个人总结作业(第12次)成绩公示
    团队作业第五次(第8次)—项目系统设计与数据库设计成绩排名
    需求分析课堂答辩问题汇总
  • 原文地址:https://www.cnblogs.com/jiading/p/11516111.html
Copyright © 2011-2022 走看看