Skip to content

Latest commit

 

History

History
33 lines (29 loc) · 2.21 KB

test.md

File metadata and controls

33 lines (29 loc) · 2.21 KB

浏览器是多进程

浏览器是多进程的。浏览器中每打开一个tab页,就相当于新开启一个进程(有时候打开多个tab页后,可以在chrome任务管理器中发现,有些进程被合并了。这是因为浏览器有自己的优化机制)

深入了解。首先,要了解进程与线程;其次,要了解浏览器为什么是多进程;最后,要了解浏览器有哪些进程以及多进程的优势在哪里等。

进程与线程

  • 进程是系统内存分配的一小部分内存空间
  • 进程之间相互独立(不同进程之间可以相互通信,不过代价很大)
  • 进程由单个或多个线程组成
  • 多个线程之间是可以相互协作完成工作的
  • 同一个进程中各个线程之间共享同一块内存空间

浏览器为什么是多进程?

  • 大量网页转而使用动态网页
  • 渲染引擎在演化的过程中会频繁的出现bug,有些bug会导致渲染引擎崩溃
  • 渲染引擎会经常性的在网络上遇到不可信、甚至是恶意的代码,它们会利用这些漏洞在你的电脑上安装恶意的软件
  • 如果浏览器中的一个网络应用崩溃的话,这会波及所有被打开的应用在内的任何其他应用。单线程的网络应用不得不经常相互竞争以获得的cpu时间,这有时会导致整个浏览器无法响应

浏览器有哪些进程

上面我们了解到浏览器为什么是多进程的,那我们下面介绍一下浏览器大概有哪些进程?分别都是做什么的?

  1. 浏览器主进程(Browser进程)
  • 负责浏览器界面操作,如:前进、后退、查看等。
  • 负责各个页面的管理,创建或销毁其他进程
  • 负责绘制用户界面
  • 负责网络资源的管理下载等
  1. 第三方插件进程:每种插件一个进程,每当插件运行时进程才会创建
  2. 浏览器渲染进程(浏览器内核,内部是多线程的):负责页面渲染、脚本执行、事件处理等
  3. GPU进程:最多一个,用于3D绘制等

浏览器多进程有哪些优势

  • 避免单个tab页影响整个浏览器
  • 避免插件影响整个浏览器
  • 多进程可以高效的利用多核优势
  • 方便使用沙盒模型隔离插件等进程,提高浏览器的稳定性