什么是异步
来源:互联网 发布:好用的电磁炉推荐 知乎 编辑:程序博客网 时间:2024/05/18 05:32
通常,代码是由上往下依次执行的。如果有多个任务,就必需排队,前一个任务完成,后一个任务才会执行。这种执行模式称之为: 同步(synchronous) 。新手容易把计算机用语中的同步,和日常用语中的同步弄混淆。如,“把文件同步到云端”中的同步,指的是“使…保持一致”。而在计算机中,同步指的是任务从上往下依次执行的模式。比如:
例 1
A();B();C();
在上述代码中,A、B、C 是三个不同的函数,每个函数都是一个不相关的任务。在同步模式下,计算机会先执行 A 任务,再执行 B 任务,最后执行 C 任务。在大部分情况,同步模式都没问题。但是如果 B 任务是一个耗时很长网络的请求,而 C 任务恰好是展现新页面,B 与 C 没有依赖关系。这就会导致网页卡顿的现象。有一种解决方案,将 B 放在 C 后面去执行,但唯一有些不足的是,B 的网络请求会迟一些再发送。
还有另一种更完美解决方案,将 B 任务分成的两个部分。一部分是,立即执行网络请求的任务;另一部分是,在请求数据回来后执行的任务。这种一部分在立即执行,另一部分在未来执行的模式称为 异步(asynchronous) 。伪代码如下:
例 2
A();// 在现在发送请求ajax('url1',function B() { // 在未来某个时刻执行})C();// 执行顺序 A => C => B
实际上,JavaScript 引擎先执行了调用了浏览器的网络请求接口的任务(一部分任务),再由浏览器发送网络请求并监听请求返回(这个任务不由 JavaScript 引擎执行,而是浏览器);等请求放回后,浏览器再通知 JavaScript 引擎,开始执行回调函数中的任务(另一部分)。JavaScript 异步能力的本质是浏览器或 Node 的多线程能力。
阅读全文
0 0
- 什么是异步
- 什么是同步?什么是异步?
- 什么是异步加载
- 什么是异步调用
- 什么是java异步
- 什么是.Net异步机制呢?
- 什么是同步、异步 (一)
- 什么是.Net异步机制呢?
- 一秒钟教你理解什么是异步什么是同步!
- 什么是.Net的异步机制(异步Stream读/写)
- 异步压力测试探索:什么是异步非阻塞
- 什么是同步IO和异步IO
- 面试问题什么是异步非阻塞
- 什么是异步传输,什么是同步传输.异步和同步的比较
- 开发要搞清楚什么是并发,并行,串行,同步,异步?
- 什么是同步逻辑和异步逻辑,同步电路和异步电路的区别是什么
- php 阻塞和非阻塞,同步与异步的理解,什么是异步非阻塞
- 什么是
- Android 自定义标题栏 TitleBar
- 如何查看某个端口被谁占用
- 第二章 Zookeeper集群测试(window版)【下】
- Tiled Map Editor(一)
- 人脸识别LBP的MATLAB实现
- 什么是异步
- 菜鸟的red5之旅
- lower_bound和upper_bound的用法
- 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
- 数组、冒泡排序
- PHP 正则表达式匹配 preg_match 与 preg_match_all 函数
- Rightmost Digit
- Java的21个核心技术点,你知道吗?
- tensorflow--TFRecord输入数据格式