浏览器的渲染进程(Renderer Process)是多线程的。这是前端开发中最核心的进程,负责页面的渲染、脚本执行、事件处理等。 通常来说,渲染进程包含以下 5 类主要线程: 1. GUI 渲染线程 (GUI Rendering Thread) 职责: 负责渲染浏览器界面,解析 HTML、CSS,构建 DOM 树和 RenderObject 树,布局和绘制等。 当界面需要重绘(Repaint)或由于某种操作引发回流(Reflow)时,该线程就会执行。 注意:GUI 渲染线程与 JS 引擎线程是互斥的。当 JS 引擎执行时,GUI 线程会被挂起(相当于被冻结),GUI 更新会被保存在一个队列中,等到 JS 引擎空闲时立即被执行。如果 JS 执行时间过长,会导致页面渲染卡顿。 2. JS 引擎线程 (JS Engine Thread) 职责: 也称为 JS 内核(例如 Chrome 的 V8 引擎)。 负责处理 JavaScript 脚本程序,解析和运行代码。 JS 引擎一直等待着任务队列中任务的到来,然后加以处理。 注意:在一个渲染进程中,任何时刻只能有一个 JS 线程在运行 J...