浏览器多进程和浏览器内核
注:本文为学习笔记总结,非原创
最近在回顾一下一些前端底层的东西,然后看了一些浏览器相关的文章,写下了这篇笔记
1、进程与线程
- 进程:CPU资源分配的最小单位;
- 线程:CPU调度的最小单位;
2、浏览器多进程
- Browser进程:浏览器主进程;
- 第三方插件进程
- GPU进程:最多一个,用于3D绘制等;
- 浏览器渲染进程:又称浏览器内核;
3、浏览器多进程的优势
- 避免单个页面page奔溃影响整个浏览器;
- 避免第三方插件奔溃影响整个浏览器;
- 多进程充分利用多核优势(空间换时间);
- 方便使用沙盒模型隔离插件等进程,提高浏览器稳定性;
4、浏览器内核(浏览器渲染进程)
- GUI渲染线程:负责解析html、css,构建DOM树和RenderObject树、布局和绘制等;
- JS引擎线程:处理js脚本;
- 事件触发线程:控制事件循环;
- 定时触发器线程:settimeout和setInterval所在线程;
- 异步Http请求线程