Event Loop 事件环

一、进程的概念

1、进程是是计算机调度的基本单位;

2、CPU正在进行的一个任务的运行过程的调度单位;

3、浏览器是一个多进程的应用程序;

4、进程包含线程,一个进程存在多个线程,线程是在进程中运行;

二、浏览器进程、线程:

1、浏览器有一个主进程,负责浏览器的主窗口

2、浏览器中的每一个标签都有各自独立的进程:

        2-1、渲染进程:浏览器内核Render、渲染引擎;

        2-2、网络进程:网络请求;

        2-3、GPU进程:动画与3D绘制;

        2-4、插件进程:devtool....

3、每个进程里面包含了多个线程(创建线程的目的是为了实现异步的执行)

三、渲染进程,包含的线程:

1、GUI渲染线程(渲染页面):

        1-1:解析HTML、CSS;

        1-2:构建DOM/render树;

        1-3:初始布局与绘制;

        1-4:绘制与回流(dom更新)。

2、JS引擎线程

2-1:一主线程与多个辅助线程配合完成工作流;

2-2:一个浏览器只有一个JS引擎;

2-3:解析JS脚本并运行;

3、GUI线程与JS引擎线程运行互斥:js线程比GUI线程优先级高,只有js线程空闲的清空下,GUI线程才能工作。

4、宏任务与微任务:

 4-1、宏任务(macro-task):

script、UI渲染、setTimeOut、setInterval、setImmediate(IE新版本/Edge/NOdeJS)、messageChannel、用户交互事件、Ajax、requestAnimationFrame

 4-2:微任务(micro-task):

promise.then、mutationObserver、process.nextTick(NodeJS)

        event loop线程:每一次循环都必须清空微任务的队列、二宏任务只会取队列中的一个任务进行处理。

事件一次循环的流程:同步任务——>微任务回调——>GUI渲染——>宏任务回调。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值