chrome浏览器为何用多进程而不用多线程

多进程和多线程的区别

  • 多进程更耗资源。每一个进程都有独立的资源,线程间共享资源
  • 多进程更安全。线程间共享内存,进程间通讯更麻烦
  • 多进程更稳定。一个进程崩溃了不一会影响其余进程。一个线程崩溃了可能会使整个进程崩溃

为何用多进程

速度

使用多进程就是用内存换速度,为了加快浏览器tab的加载速度,chrome浏览器每一个tab使用一个进程,这样即便由于某个页面崩溃了也不会影响其余页面,这就是为何firefox常常整个浏览器崩掉的缘由,由于它是整个浏览器用一个进程,每一个tab用一个线程,各类插件也都是线程chrome

可靠

每一个tab使用一个进程,一个tab的快慢或者崩溃不会影响其余tab。而每一个tab使用一个线程,当一个tab崩溃了就会影响全部tab,尤为是开启了不少tab,继续开tab会很慢。segmentfault

安全

进程间通讯更麻烦,线程间能够共享进程的资源。若是使用多线程,当某个tab有病毒,可能会泄露其余tab的数据浏览器

用多进程的缺点

1.当开启的页面过多,太多的进程会致使消耗不少资源
2.进程启动比线程慢
可是如今设备内存已经不像二十年前了,不须要太计较内存大小,并且进程启动方面也能够优化,所以浏览器使用多进程已是大势所趋
安全

chrome浏览器的每一个进程作了什么

Chrome 建立三种类型的进程:浏览器,渲染器和插件程序markdown

  • 浏览器:只有一个浏览器进程,管理标签,窗口和 “Chrome”,也处理磁盘,网络,显示的交互,但不会去解析和渲染任何网页内容
  • 渲染器:渲染器进程由浏览器进程建立,每一个渲染器进程响应一个网页。包括HTML,JavaScript,CSS,images等复杂的逻辑。使用 WebKit渲染引擎。每一个渲染进程都在沙盒中,经过浏览器进程访问磁盘,网络,显示器。若是渲染器有异常,浏览器进程监视器能够杀掉
  • 插件程序:每种插件由浏览器进程建立一个进程,例如 Flash,Quicktime,Adobe Reader.包含插件程序自己和一些胶水代码来与浏览器和渲染器进行交互

chrome特色

  • 开不少进程电脑会变慢,因此渲染器进程限制在30个,若是超个限制,新的标签会重复使用已存在的渲染器进程。所以,可能一个渲染器进程被多个网址使用。
  • 没有在进程中放置跨站点的帧,也没有为全部类型的跨站点导航交换标签的渲染器进程。目前,只是经过浏览器的“Chrome”为导航交换标签的进程。
  • 每一个插件程序,Chrome会在第一个网页使用时建立插件进程,在全部使用该插件的网页都关闭后销毁插件进程。

firefox在54版本以后也支持了多进程。网络

参考

【1】为何chrome采用多进程方式?
【2】Chrome 为何使用多进程,即每一个站点用一个进程
【3】为何浏览器采用多进程模型
【4】Chrome 为何多进程而不是多线程?
【5】[下载]多进程终于到来:Firefox 54.0稳定版发布
多线程

相关文章
相关标签/搜索