1.进程和线程
1-1 什么是并行处理?
A = 1+2
B = 20/5
C = 7+8
单线程(四步):
- 任务1 计算 A = 1+2
- 任务2 计算 B = 20/5
- 任务3 计算 C = 7+8
- 任务4 显示最后的计算结果
多线程(两步):
- 使用三个线程同时执行前三个任务
- 执行第四个显示任务
使用并行处理能大大提升性能
1-2 线程 VS 进程
- 线程:线程是不能单独存在的,它是由进程来启动和管理的
- 进程:一个进程就是一个程序运行的实例。启动一个进程的时候,操作系统会为该程序创建一块内存,用来存放代码、运行中的数据和一个执行任务的主线程。
线程和进程之间的关系有以下特点
- 当程序中的任一线程执行出错,都会导致整个程序的崩溃。
A = 1+2
B = 20/0 // 出错
C = 7*8
- 线程之间共享进程中的数据
- 当一个进程关闭之后,操作系统会回收进程所占用的内存
- 进程之间的内容相互隔离。
2.目前多进程架构
- 1个浏览器进程:主要负责界面显示、用户交互、子进程管理,同时提供存储等功能
- 多个渲染进程:核心任务是将HTML、CSS和JavaScript转换为用户可以与之交互的网页,包含排版引擎Blink和JavaScript引擎V8,每个Tab标签创建一个渲染进程。
- GPU进程:初衷是为了3D CSS的效果,虽有网页、chrome的UI界面都选择采用GPU绘制
- 网络进程:主要负责页面的网络资源加载,之前作为一个模块运行在浏览器进程。
- 插件进程:主要负责插件的运行,因插件容易崩溃,需要进程隔离,以保证插件崩溃不会队浏览器和页面造成影响。