进程
浏览器是多进程的
主要包括:
- Browser进程:浏览器的主进程,负责创建和销毁其他进程、网络资源的下载与管理等
- GPU进程:用于3D图形绘制,最多一个
- 第三方插件进程:比如chrome中的插件
- 浏览器渲染进程(浏览器内核):每打开一个网页就会创建一个新的浏览器渲染进程,每个进程是多线程的
浏览器渲染进程
浏览器的渲染进程包括多个线程:
- GUI渲染线程:渲染页面,如回流和重绘
- Javascript引擎线程:比如v8引擎,负责js代码的解析和运行
- 事件触发线程:控制浏览器的事件循环,将事件添加到任务队列的队尾,然后交给JS线程处理
- 定时器触发线程:控制定时器(最小触发时间4ms)
- 异步http请求线程:控制XMLHttpRequest对象
JS是单线程的
同一时间只能执行一个线程的事情