浏览器进程

 


有哪些进程和线程

  • 浏览器进程(1个):浏览器的主进程,负责协调。
  • GPU进程(1个):用于3D绘制等,将开启了3D绘制的元素的渲染由CPU转向GPU,也就是开启GPU加速。
  • 网络进程(1个):用于网络资源的加载。
  • 音频进程(1个):音频管理。
  • 渲染进程(多个):浏览器内核,内部是多线程的。默认一个tab页面对应一个渲染进程,内部多线程。
    • GUI渲染线程:负责渲染浏览器截面,包括解析HTML、CSS,构建DOM树、渲染树,布局和绘制。当界面需要重绘或回流时,该线程就会执行。与JS引擎互斥。
    • JS引擎线程:负责解析、运行js脚本程序。一直等待任务队列中的任务到来,然后加以处理。
    • 事件触发线程:用于控制事件循环。
    • 定时触发线程:用于为setInterval、setTimeOut计时。
    • 异步HTTP请求线程(IO线程):XMLHttpRequest连接后通过浏览器新开一个线程请求。
  • 插件进程(多个):使用插件时创建,每种类型的插件对应一个进程。

多进程的好处

  1. 避免单个页面奔溃影响整个浏览器;
  2. 避免第三方插件奔溃影响整个浏览器;
  3. 充分利用多核优势;
  4. 方便使用沙河模型隔离插件等进程,提高浏览器稳定性;

思考:为什么专门设立一个事件触发线程用于管理事件循环

事件源除了来自js代码,还来自用户点击、网络响应。而js引擎线程用于执行js代码,没法及时接收事件。

posted @   hdxg  阅读(137)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css
点击右上角即可分享
微信分享提示