栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

事件循环机制

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

事件循环机制

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

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

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

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

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

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

同步:js代码;

异步又分两种:

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

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/727931.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号