lznbuild / my-blog

自己的博客
9 stars 1 forks source link

浏览器的主要进程及协作关系 #16

Open lznbuild opened 4 years ago

lznbuild commented 4 years ago

进程和线程的关系

进程是cpu资源分配的最小单位。
线程是cpu调度的最小单位。

线程是不能单独存在的,它是由进程来启动和管理的。

一个进程就是一个程序的运行实例。详细解释就是,启动一个程序的时候,操作系统会为该程序创建一块内存,用来存放代码、运行中的数据和一个执行任务的主线程,我们把这样的一个运行环境叫进程。

线程是依附于进程的,而进程中使用多线程并行处理能提升运算效率。

进程中的任意一线程执行出错,都会导致整个进程的崩溃。

线程之间共享进程中的数据。

当一个进程关闭之后,操作系统会回收进程所占用的内存。

进程之间的内容相互隔离。所以一个进程如果崩溃了,或者挂起了,是不会影响到其他进程的。如果进程之间需要进行数据的通信,这时候,就需要使用用于进程间通信(IPC)机制。

各个浏览器进程及其作用

最新的chrome浏览器包括:1 个浏览器(Browser)主进程、1 个 GPU 进程、1 个网络(NetWork)进程、多个渲染进程和多个插件进程。

打开 1 个页面至少需要 1 个网络进程、1 个浏览器进程、1 个 GPU 进程以及 1 个渲染进程,共 4 个;如果打开的页面有运行插件的话,还需要再加上 1 个插件进程。

每打开一个Tab页,就相当于创建了一个独立的浏览器进程。