美文网首页
什么是异步操作

什么是异步操作

作者: inspg | 来源:发表于2019-01-03 11:02 被阅读0次

1.背景介绍

同步指的是一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。

异步指的是每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的。

2.知识剖析

首先js是单线程的语言,即同一时间只能做做一件事。那Js如何实现异步的,异步和单线程不是自相矛盾吗?其实,单线程和异步确实不能同时成为一个语言的特性。js选择了成为单线程的语言,所以它本身不可能是异步的,但js的宿主环境(比如浏览器,Node)是多线程的,宿主环境通过某种方式(事件驱动,下文会讲)使得js具备了异步的属性。

浏览器的内核是多线程的,它们在内核制控下相互配合以保持同步,一个浏览器至少实现三个常驻线程:javascript引擎线程,UI渲染线程,浏览器事件触发线程。

1.javascript引擎线程是基于事件驱动单线程执行的,JS引擎一直等待着任务队列中任务的到来,然后加以处理,浏览器无论什么时候都只有一个JS线程在运行JS程序。

2.UI渲染线程负责渲染浏览器界面,当界面需要重绘(Repaint)或由于某种操作引发回流(reflow)时,该线程就会执行。但需要注意 UI渲染线程与JS引擎是互斥的,当JS引擎执行时UI线程会被挂起,UI更新会被保存在一个队列中等到JS引擎空闲时立即被执行。

3.事件触发线程,当一个事件被触发时该线程会把事件添加到待处理队列的队尾,等待JS引擎的处理。这些事件可来自JavaScript引擎当前执行的代码块如setTimeOut、也可来自浏览器内核的其他线程如鼠标点击、AJAX异步请求等,但由于JS的单线程关系所有这些事件都得排队等待JS引擎处理。

3.常见问题

1.ajax发送异步请求浏览器做了什么。

2.有哪些常见异步回调函数?

4.解决方案

1.Js创建了一个ajax请求

  2.浏览器另外开启一个ajax引擎线程,执行ajax请求

  3.执行得到响应后将回调函数放入任务队列中。

4.Js执行任务队列中的回调函数。

2.常见的异步

1,点击时间,

2,定时器,

3,AJAX请求。

5.遇到到问题。

如何写一个简单的异步操作。

答:回调函数也相当于异步操作,所以可以在函数A里面回调函数B。

如果俩个定时器操作耗时一样长或者一个比一个操作耗时稍微短,代码如何执行。

答:异步操作总是将耗时的任务放在后面执行所以耗时短的将会在前面执行,如果耗时一样长则看函数的排序,或者是否回调。

相关文章

  • 什么是异步操作

    1.背景介绍 同步指的是一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以...

  • vuex dispatch和commit 的区别

    dispatch:异步操作,commit :同步操作 为什么dispatch是异步而commit是同步呢? 首先,...

  • 微信小程序:使用Promise简化回调

    了解什么是 Promise 对象 在项目中,会出现各种异步操作,如果一个异步操作的回调里还有异步操作,就会出现回调...

  • celery 定时任务实现

    Celery 是什么? 异步任务队列工具,主要解决 realtime 事件的异步操作,但也支持定时任务。 什么是异...

  • 异步操作和Async函数

    异步操作和Async函数 异步操作 异步编程的四种方式:回调函数、事件监听、发布/订阅、Promise。 为什么N...

  • AsyncTask相关面试题

    什么是AsyncTask? AsyncTask(异步任务类),比Handler更轻量,更适合简单的异步操作内部实现...

  • Promise

    什么是Promise Promise对象用于异步操作,它表示一个尚未完成且预计在未来完成的异步操作 Promise...

  • 网络编程2-同步异步、阻塞非阻塞

    一、什么是同步异步 1. 同步 例如:程序触发io操作,程序等待或者轮循查看io操作是否完成。 2. 异步 例如:...

  • Android AsyncTask基础

    AsyncTask是Android为了简化异步操作而封装的异步任务操作抽象类。当我们需要在程序中执行耗时的异步操作...

  • ES6 Primise异步编程

    异步操作流程化的手段 #Promise处理异步操作 Promise,使异步操作变得流程化的手段之一,例如“异步A ...

网友评论

      本文标题:什么是异步操作

      本文链接:https://www.haomeiwen.com/subject/qeqfrqtx.html