线程和进程区分不清,是很多新手都会犯的错误,没有关系。这很正常。如果是windows电脑中,可以打开任务管理器,可以看到有一个后台进程列表。对,那里就是查看进程的地方,而且可以看到每个进程的内存资源信息以及cpu占有率。

浏览器多进程和浏览器内核的介绍 浏览器多进程和浏览器内核的介绍(1)

所以,应该更容易理解了:进程是cpu资源分配的最小单位(系统会给它分配内存)

最后,再用较为官方的术语描述一遍:

tips

浏览器是多进程,理解了进程与线程了区别后,接下来对浏览器进行一定程度上的认识:

关于以上几点的验证,请再第一张图

浏览器多进程和浏览器内核的介绍 浏览器多进程和浏览器内核的介绍(2)

图中打开了Chrome浏览器的多个标签页,然后可以在Chrome的任务管理器中看到有多个进程(分别是每一个Tab页面有一个独立的进程,以及一个主进程)。

感兴趣的可以自行尝试下,如果再多打开一个Tab页,进程正常会 1以上

注意:在这里浏览器应该也有自己的优化机制,有时候打开多个tab页后,可以在Chrome任务管理器中看到,有些进程被合并了

(所以每一个Tab标签对应一个进程并不一定是绝对的)

浏览器都包含哪些进程?知道了浏览器是多进程后,再来看看它到底包含哪些进程:(为了简化理解,仅列举主要进程)

浏览器多进程的优势相比于单进程浏览器,多进程有如下优点:

重点是浏览器内核(渲染进程)重点来了,我们可以看到,上面提到了这么多的进程,那么,对于普通的前端操作来说,最终要的是什么呢?答案是渲染进程

可以这样理解,页面的渲染,JS的执行,事件的循环,都在这个进程内进行。接下来重点分析这个进程

请牢记,浏览器的渲染进程是多线程的

GUI渲染线程

JS引擎线程

事件触发线程

定时触发器线程

异步http请求线程

,