浏览器进程
有哪些进程和线程
- 浏览器进程(1个):浏览器的主进程,负责协调。
- GPU进程(1个):用于3D绘制等,将开启了3D绘制的元素的渲染由CPU转向GPU,也就是开启GPU加速。
- 网络进程(1个):用于网络资源的加载。
- 音频进程(1个):音频管理。
- 渲染进程(多个):浏览器内核,内部是多线程的。默认一个tab页面对应一个渲染进程,内部多线程。
- GUI渲染线程:负责渲染浏览器截面,包括解析HTML、CSS,构建DOM树、渲染树,布局和绘制。当界面需要重绘或回流时,该线程就会执行。与JS引擎互斥。
- JS引擎线程:负责解析、运行js脚本程序。一直等待任务队列中的任务到来,然后加以处理。
- 事件触发线程:用于控制事件循环。
- 定时触发线程:用于为setInterval、setTimeOut计时。
- 异步HTTP请求线程(IO线程):XMLHttpRequest连接后通过浏览器新开一个线程请求。
- 插件进程(多个):使用插件时创建,每种类型的插件对应一个进程。
多进程的好处
- 避免单个页面奔溃影响整个浏览器;
- 避免第三方插件奔溃影响整个浏览器;
- 充分利用多核优势;
- 方便使用沙河模型隔离插件等进程,提高浏览器稳定性;
思考:为什么专门设立一个事件触发线程用于管理事件循环
事件源除了来自js代码,还来自用户点击、网络响应。而js引擎线程用于执行js代码,没法及时接收事件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix