浏览器原理学习记录 一

97 阅读2分钟

浏览器多进程

线程和进程的关系

计算机中的并行处理就是同一时刻处理多个任务 同一时刻处理多个任务就是多个线程同时处理 但是线程是不能单独存在的,它是由进程来启动和管理的。 一个进程就是一个程序的运行实例。 详细解释就是,启动一个程序的时候,操作系统会为该程序创建一块内存,用来存放代码、运行中的数据和一个执行任务的主线出现,我们把这样的一个运行环境叫进程。

线程依赖于进程 ,简单来说就是线程存在于进程里面,一个进程可以有多个线程。 进程和线程之间的关系有以下 4 个特点

  1. 进程中的任务以线程执行出错,都会导致整个进程的崩溃
  2. 线程之间共享进程中的数据
  3. 当一个进程关闭之后,操作系统会回收进程所占用的内存。
  4. 进程之间的内容相互隔离.

单进程浏览器

  1. 不稳定
  2. 不流畅
  3. 不安全

多进程浏览器

最新的 Chrome 浏览器包括: 1 个浏览器进程,1 个 GPU 进程,1 个网络进程,多个渲染进程和多个插件进程。

  1. 浏览器进程:主要负责界面显示,用户交互,子进程管理,同时提供存储等功能
  2. GPU 进程:主要是实现 UI 界面绘制
  3. 网络进程:主要是负责页面的网络资源加载,之前是作为一个模块运行在浏览器进程里面的,最后独立出来,成为一个单独进程。
  4. 渲染进程: 核心人物是将 HTML,CSS 和 Javascript 转为用户可以与之交互的网页,排版引擎和 js 引擎 V8 都是运行在该进程中,默认情况下 CHrome 会为每个 Tab 标签创建于给渲染进程,出于安全考虑,渲染进程都是运行在沙箱模式下。
  5. 插件进程:主要是用来负责运行插件,插件容易崩溃,还有安全问题

坏处:

  1. 更高的资源占用
  2. 更复杂的体系架构