有哪些进程和线程
- 浏览器进程(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代码,没法及时接收事件。
标签:插件,浏览器,渲染,js,线程,进程 From: https://www.cnblogs.com/hdxg/p/17103648.html