前端面试考点---浏览器进程线程篇

概念解析

  • 进程:操作系统分配调度资源的最小单位,每个软件程序至少一个进程

  • 线程:程序执行的最小单元

  • 多进程:一个操作系统同时运行多个应用程序、一个浏览器同时打开多个tab页面

  • 多线程:浏览器内核多线程协作完成渲染工作

浏览器进程划分

  • 浏览器主进程(一个),浏览器tab切换、回退刷新等操作
  • 网络进程,负责网络资源加载(一个)
  • GPU进程(一个),负责像素点绘制
  • 插件进程(一个插件一个)
  • 渲染进程(一个tab一个),多个tab互不影响

浏览器内核(渲染引擎进程)

1. GUI渲染线程

  • 负责解析HTML、CSS构建DOM数和 render树
  • 时间:重绘、回流时会执行
  • 特点:与JS引擎互斥

2. JavaScript引擎线程

  • 作用:处理JS脚本程序,编译JS代码,如V8引擎,Chrome和Node.js都在用

  • 起因:JS语言是一门单线程语言,它的异步和多线程是通过Event Loop事件循环来实现的

  • 特点:与GUI引擎互斥

  • 构成:内存堆(内存分配)、调用栈(代码执行)

  • 由于是单线程,通过事件循环机制来实现异步任务

3. 事件触发线程

  • 控制事件循环的节奏,当执行栈(js主线程执行完空闲后),从消息队列中取出一个任务放入执行栈中执行
  • 执行栈为空后,再从消息队列中取出一个放入执行栈中执行
  • 维护一个消息队列

4. 定时器触发线程

  • setTimeout、setInterval

5. 异步请求线程

  • 发送网络请求获取数据

作者:alex9968
链接:https://juejin.cn/post/6854573217655291918
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值