01宏观视角下的浏览器——打开一个页面,为什么会有4个进程

  • Post author:
  • Post category:其他



1.进程和线程


2.目前多进程架构

1.进程和线程

1-1 什么是并行处理?
A = 1+2
B = 20/5
C = 7+8

单线程(四步):

  1. 任务1 计算 A = 1+2
  2. 任务2 计算 B = 20/5
  3. 任务3 计算 C = 7+8
  4. 任务4 显示最后的计算结果

多线程(两步):

  1. 使用三个线程同时执行前三个任务
  2. 执行第四个显示任务


使用并行处理能大大提升性能

1-2 线程 VS 进程
  • 线程:线程是不能单独存在的,它是由进程来启动和管理的
  • 进程:一个进程就是一个程序运行的实例。启动一个进程的时候,操作系统会为该程序创建一块

    内存



    用来存放代码、运行中的数据和一个执行任务的主线程

线程和进程之间的关系有以下特点

  1. 当程序中的任一线程执行出错,都会导致整个程序的崩溃。
A = 1+2
B = 20/0  // 出错
C = 7*8
  1. 线程之间共享进程中的数据

    在这里插入图片描述
  2. 当一个进程关闭之后,操作系统会回收进程所占用的内存
  3. 进程之间的内容相互隔离。

2.目前多进程架构

  1. 1个浏览器进程:主要负责界面显示、用户交互、子进程管理,同时提供存储等功能
  2. 多个渲染进程:核心任务是将HTML、CSS和JavaScript转换为用户可以与之交互的网页,包含排版引擎Blink和JavaScript引擎V8,每个Tab标签创建一个渲染进程。
  3. GPU进程:初衷是为了3D CSS的效果,虽有网页、chrome的UI界面都选择采用GPU绘制
  4. 网络进程:主要负责页面的网络资源加载,之前作为一个模块运行在浏览器进程。
  5. 插件进程:主要负责插件的运行,因插件容易崩溃,需要进程隔离,以保证插件崩溃不会队浏览器和页面造成影响。



版权声明:本文为weixin_44499465原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。