浏览器渲染进程到底分为多少线程?-灵析社区

喝一杯吧可以吗

## 浏览器的渲染进程到底分为多少线程? 今天查资料有点给我查晕了,我现在知道浏览器应该是有四个进程。 而其中的渲染进程又是由五个小线程组成的。 ![](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/3e48170460ef968d34c1f9736e441c71.png) 然后我去查**渲染进程流程** 的时候,又查到主要说法是分为**四个或三个小线程** :主线程 Main thread , 工作线程 Worker thread(有的文章没说这个),光栅线程 Raster thread 和排版线程 Compositor thread。 流程类似: ![](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/b272575c4e7406ad09c58d485cbde7a0.png) 我希望您解答: 1. 浏览器的**渲染进程** ,到底分为**几个线程** ? 2. **为什么** 会出现我问题中描述的,同样是**渲染进程** ,却有不同的细分方式。 3. 浏览器运行工作时,每一帧(16ms)是不是都会触发一次完整渲染进程流程? 4. 希望您能给出比较**系统化的资料链接** 。

阅读量:199

点赞量:0

问AI
核心线程: 主线程(Main thread) 合成线程(Compositor thread) 光栅线程(Raster thread 或多个) 网络线程(尽管在网络层面,但它对渲染流程至关重要) 工作线程(Worker thread,用于异步计算任务) 出现描述差异的原因可能包括但不限于: 资料来源基于不同的浏览器版本或研究视角。 浏览器内部实现不断改进,线程分工随之变化。 部分资料为简化说明,可能忽略了非直接影响渲染流程的部分线程类型。 关于帧率与渲染流程的问题 浏览器并不保证每一帧(通常为16毫秒)都会触发一次完整的渲染流程。实际上,现代浏览器利用增量渲染和异步更新技术,仅在必要时(例如页面内容或布局发生改变时)才重新进行布局或重绘。许多情况下,如滚动和动画的更新,仅需要合成线程参与,而无需重新执行布局或绘制操作。 深入了解现代网络浏览器(第 1 部分): "https://developer.chrome.com/blog/inside-browser-part1?hl=zh-cn" (https://link.segmentfault.com/?enc=OyDxX4Dpe%2FZDWiCY%2BOs6Eg%3D%3D.KQ0k91grBDe3jJVA7px5aU17HbuIL4cvxeUSUQ%2BVzYvNZg2QoYgfdMt%2FnDWi0M3QMQ0HV7MxiJPmQ3vl%2BSUWhQ%3D%3D) 深入了解现代网络浏览器(第 2 部分): "https://developer.chrome.com/blog/inside-browser-part2?hl=zh-cn" (https://link.segmentfault.com/?enc=x4QeWiVLDN3OUa20dbKHZg%3D%3D.KpOzacd1sxe2NsH1q%2B5mmmgpuYm7DIp6Or%2FZHV3zkdWB4U1fvKZJJXTIbDsAxya4qKZpTysOUl5F0tedXmHCrQ%3D%3D) 开发者工具的新变化 (Chrome 77) : "https://developer.chrome.com/blog/new-in-devtools-77?hl=zh-cn" (https://link.segmentfault.com/?enc=BmEHpf7O2Ww2b1ISwiuEIw%3D%3D.w2jhiNyp8rZjt0j%2BAXSr74dJqpbceyf8bA6Y7Ou4kQZtOHz%2FbLc0jpVKq%2FreKmMmh3C5LghcUihXhSK%2FfFAUcA%3D%3D) High PerformanceBrowser Networking: "https://hpbn.co/" (https://link.segmentfault.com/?enc=H%2BG0kjCahpTxhOho1%2FhOFQ%3D%3D.YznXx%2BHmosyJraaPh37IC3WqmqDhXRg7S1xFNi9bjWM%3D)