欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

事件循环机制

时间:2023-07-30

说起事件循环,首先先介绍两个概念,“进程”和“线程”。

进程: CPU 在运行指令及加载和保存上下文所需的时间。

线程:是进程中的更小单位,描述了执行一段指令所需的时间。

举个例子:比如打开一个页面就相当于开启了一个进程,这个进程中呢又包含了许多的线程,比如JS线程,ui渲染线程,http请求线程。。。

说到JS线程,大家都知道是单线程的,因为这里有个执行栈(遵循“先进后出”原则),相当于主线程。如果大家都走主线程的话存在堵塞问题,性能较低,所以提出了同步,异步的概念。那同步,异步如何处理的呢?请看流程图(盗用):

哪些是同步任务,哪些是异步任务呢?

同步:js代码;

异步又分两种:

宏任务(macrotask队列):script,setTimeout,setInterval,setImmediate,I/O,UI rendering

微任务(microtask队列):process.nextTick(),promise,mutationObserve

按照“宏任务--->微任务--->UI渲染--->宏任务--->微任务--->UI渲染”一直循环下去,因为js属于宏任务,所以循环是从宏任务开始的,至于优先级就是上面列出的顺序。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。