浏览器是多进程还是单进程?

浏览器是多进程的,每一个tab页代表一个进程,如果多个空的tab页会合为一个进程 (webkit))
浏览器是多进程还是单进程?_第1张图片
每个进程下面有很多线程,我们具体介绍下:

  • GUI 渲染线程

渲染引擎的主要工作是将HTML构造为DOM树,将CSS构造为CSSOM树,DOM树与CSSOM树合并为render树,渲染为布局,最后绘制为浏览器页面。

界面需要重绘(Repaint)或由于某种操作引发回流 ( Reflow ) 时,该线程就会执行。

  • JS 引擎线程

JS引擎线程负责解析执行javascript脚本

JS 引擎线程 和 GUI 渲染线程 是互斥的如果JS引擎执行时间过长,会阻塞渲染引擎,从而导致页面渲染速度非常慢

  • 事件触发线程

JS引擎在执行javascript代码时,会形成相应的执行栈,执行同步任务,异步任务的事件回调扔到任务队列。等待同步任务执行完毕,执行任务队列中的任务(宏任务,微任务)

  • 定时器触发线程

开启定时器时,触发定时器线程,定时器结束后,事件回调函数添加到任务队列,等待JS引擎处理

  • http 请求线程

当 http 请求时会开启一条请求线程
当请求完毕时,将请求的回调函数添加到任务队列,等待JS引擎处理

你可能感兴趣的:(浏览器,Javascript,javascript)