浏览器多进程架构

跟不少多线程浏览器不同,chrome使用多个进程来隔离不一样的标签页,所以打开一个标签页,就等因而开了一个新的进程,固然,进程之间是不共享资源和地址空间的,因此每一个进程之间不太会出现互相影响的安全问题,而多个线程,是共享着相同的资源和地址空间的,因此线程之间就有可能会存在恶意修改或者获取非受权数据的复杂性安全问题。chrome

多进程:相似于一个工厂,每一个工厂有每一个工厂本身作的时间,互不影响

多线程:相似于每个工厂里面的工人,一个工厂能够有不少个工人 
复制代码

浏览器也会有本身的优化机制,好比打开多个空白的标签页,在chrome的任务管理器里面,就会发现把这些空白页,都合成了一个进程,因此一个tab标签页对应一个进程也不是绝对的浏览器

浏览器除了主进程,还有一个其余进程来辅助支撑主进程安全

Browser进程网络

  • 浏览器的主进程(负责调控、主控),只存在一个,做用有
  • 负责浏览器界面显示,与用户交互,前进、后退等
  • 负责各个页面间的管理,建立和销毁其余进程
  • 网络资源管理,下载等

第三方插件多线程

  • 每种类型的插件是一个进程,当使用时建立

GPU进程优化

  • 最多一个,用于3D绘制等

浏览器渲染进程(浏览器内核)(Renderer进程,内部是多线程的):默认每个tab页都是一个进程,互不影响,主要做用为:spa

  • 页面渲染
  • 脚本执行
  • 时间处理等

相对于单进程浏览器,多进程浏览器的优点有

  • 避免单个页面奔溃影响整个浏览器
  • 避免第三方插件奔溃影响整个浏览器
  • 多进程充分利用多核优点
  • 方便使用沙盒模式隔离插件等流程,提升浏览器稳定性
相关文章
相关标签/搜索