同步(Synchronous)和异步(Asynchronous)方法的区别
同步(Synchronous)和异步(Asynchronous)方法的区别
在讲之前,我们先来看《Computer Organization》中对于同步和异步的一个例子:
同步读写和异步读写的区别:
同步读写:以读为例

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

- 处理器将地址和数据放到对应的线上,在等待这些数据建立之后,将这些数据和读的命令一并发出
- 内存解码地址,将数据放到地址总线上
- 等到地址通道建立好后,内存中的模块通过ackownledged line(我不知道怎么翻译恰当···)通知处理器数据已经加载完成了
- master读取数据并取消读信号
- 4导致内存中的模块主动断掉数据连线和ackownledged line
- 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 line\signal 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
同步(Synchronous)和异步(Asynchronous)方法的区别的更多相关文章
- 同步(Synchronous)和异步(Asynchronous)
目录 概念性 图示例 举个例子 回到顶部 概念性 同步和异步通常用来形容一次方法调用. 同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为. 异步方法调用更像一个消息传递,一旦开始 ...
- 同步IO与一部IO、IO多路复用(番外篇)select、poll、epoll三者的区别;blocking和non-blocking的区别 synchronous IO和asynchronous IO的区别
Python之路,Day9 , IO多路复用(番外篇) 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. ...
- 阻塞IO、非阻塞IO、同步IO、异步IO等
https://www.cnblogs.com/zingp/p/6863170.html 阅读目录 1 基础知识回顾 2 I/O模式 3 事件驱动编程模型 4 select/poll/epoll的区别 ...
- Python_Day11_同步IO和异步IO
同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的network IO. ...
- Atitit 五种IO模型attilax总结 blocking和non-blocking synchronous IO和asynchronous I
Atitit 五种IO模型attilax总结 blocking和non-blocking synchronous IO和asynchronous I 1.1. .3 进程的阻塞1 1.2. 网络 ...
- 网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出 ...
- 转 网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO
此文章为转载,如有侵权,请联系本人.转载出处,http://blog.chinaunix.net/uid-28458801-id-4464639.html 同步(synchronous) IO和异步( ...
- python网络编程-同步IO和异步IO,阻塞IO和非阻塞IO
同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的network IO. ...
- 同步请求和异步请求的区别,ajax异步请求如何理解
同步请求和异步请求的区别 先解释一下同步和异步的概念 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的 ...
随机推荐
- LeetCode 216. 组合总和 III(Combination Sum III)
题目描述 找出所有相加之和为 n 的 k 个数的组合.组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字. 说明: 所有数字都是正整数. 解集不能包含重复的组合. 示例 1: 输入 ...
- 连续子数组的最大和 java实现
package findMax; /** * 连续子数组的最大和 * @author root * */ public class FindMax { static int[] data = {1,- ...
- LC 807. Max Increase to Keep City Skyline
In a 2 dimensional array grid, each value grid[i][j] represents the height of a building located the ...
- 按二次back键退出程序应用的实现
package com.loaderman.twoexitdemo; import android.os.Bundle; import android.os.Handler; import andro ...
- MongoDB 日志中出现“UserNotFound: Could not find user ceilometer@ceilometer”,如何解决?
MongoDB 日志中出现“UserNotFound: Could not find user ceilometer@ceilometer” 问题描述 MongoDB(版本 3.2.9) 服务启动后, ...
- 【Linux】【四】linux 删除文件
1.rm -f * 删除当前目录下的文件 application/file/test/tools/logs/ #最经典的方法,删除当前目录下的所有类型的文件 2.rm -rf /ro ...
- 使用PhantomJS
PhantomJS是一个基于WebKit的服务器端JavaScript API.它全面支持Web而无需浏览器支持,不仅运行快,原生支持各种web标准:DOM处理.CSS选择器.JSON.Canvas, ...
- .NET制作滚动条
今天,在工作的时候,刚好做到了滚动条,对这点不是很懂,所以,研究了一下,记录在这里,与大家分享. 对于前台页面,我们就只需要设置数据表的样式:style="overflow: auto; 即 ...
- (2)网络基础之IP
IP分为IPV4和IPV6. 以下只讲IPV4,IPV6后期会重新分出来 (以下均为个人理解,如果有误,欢迎提出.也希望如果转载,能通知我并注明转载信息,毕竟字也是我一个个码出来的.谢谢) IPV4地 ...
- javascrit-function中this的指向问题
javascrit中this的指向 全局作用域或者普通函数中 this 指向全局对象 window. //直接打印 console.log(this) //window //function声明函数 ...