进程和线程(Process And Thread )
- 进程是应用程序的执行程序,启动一个应用程序将创建一个进程
- 操作系统会为每一个进程分配一块私有内存
- 一个进程可以要求操作系统启动另一个进程,进程之间的通过IPC(Inter Process Communication)通信
Chrome浏览器多进程架构
- 浏览器进程是顶级进程,负责其他进程(渲染器进程、插件进程、GPU进程)之间的协调
- Chrome为每个选项卡都分配一个渲染器进程,设想如果运行在一个进程中,一个选项卡卡死将造成所有选项卡的卡死
- 浏览器进程包括
- UI线程(用于绘制浏览器和按钮输入字段)
- 网络线程,处理网络堆栈以从Internet接收数据
- 存储线程,控制对文件的访问
导航的过程
- 处理用户输入
用户输入url,UI线程负责处理是搜索(search query)还是请求网站(URL) - 按下enter键
- UI线程发起网络调用以获取网站内容
- 网络线程通过DNS、TLS协议建立连接
- UI线程和网络线程通信以导航至一个新网站
- 读取响应
- 网络线程查看流的前几个字节,此时进行MIME嗅探(或者MIME类型校验)
- 如果是HTML文件,网络线程将数据传递到渲染器线程,如果是zip文件,将数据传递到下载管理器
- 安全浏览检查,CORS检查,跨域将报错
- 查找渲染器进程
- 网络线程告知UI线程查找渲染器进程
- 渲染器进程渲染页面
网友评论