目录
一.浏览器的进程模型
1.进程
程序运行需要有专属的内存空间,可以把这块内存空间简单的理解为进程
在这里我们把不同的颜色看做不同的程序运行时所需要的内存空间,每个应用至少有一个进程,进程之间相互独立,如果要联系,需要双方同意.
2.线程
有了进程之后就可以开始运行代码,那么谁来运行代码呢?其实就是线程
一个进程至少有一个线程(换句话说,就是给你分配内存空间,你就要去利用)
进程开启后会自动创建一个线程运行代码,该线程称之为主线程.
如果程序需要同时执行多个代码,主线程就会启动更多的线程来执行代码,所以一个进程中可以包含多个线程
二.浏览器的进程和线程
浏览器是一个多进程多线程的应用程序
浏览器内部工作极其复杂。
为了避免相互影响,为了减少连环崩溃的几率,当启动浏览器后,它会自动启动多个进程。
可以在浏览器的任务管理器中查看当前的所有进程
其中,最主要的进程有:
1. 浏览器进程
主要负责界面显示、用户交互、子进程管理等。浏览器进程内部会启动多个线程处理不同的任务。
2. 网络进程
负责加载网络资源。网络进程内部会启动多个线程来处理不同的网络任务。
3. 渲染进程
渲染进程启动后,会开启一个**渲染主线程**,主线程负责执行 HTML、CSS、JS 代码。
默认情况下,浏览器会为每个标签页开启一个新的渲染进程,以保证不同的标签页之间不相互影 响。
三.渲染主线程
渲染主线程是浏览器中最繁忙的线程,需要它处理的任务包括但不限于:
- 解析 HTML/解析