为什么'Google Chrome Renderer'是多进程的,而不是多线程的?

时间:2013-06-24 04:56:07

标签: multithreading google-chrome thread-safety

每次我在Mac上的Chrome中加载浏览器代码时,该应用程序都会分叉另一个进程。这似乎与firefox或Safari的工作方式不同。谷歌在这种情况下远离多线程的原因是什么?这里要解决的问题(一次渲染多个页面在我看来似乎是多线程的主要候选者,或者?

1 个答案:

答案 0 :(得分:11)

在单独的流程中运行每个页面(或标签页),Chrome可以提供更高的安全性,防止页面呈现错误,以及在进程中运行的浏览器插件。基本上,如果一个页面崩溃,它不会影响其他选项卡。相反,你会得到一个“Aw Snap!”消息。

enter image description here

来自docs

  

我们对浏览器标签使用单独的流程来保护整体   应用程序从渲染引擎中的错误和故障。我们也   限制从每个渲染引擎进程访问其他人和   系统的其余部分。在某些方面,这带来了网页浏览   内存保护和访问控制带来的好处   操作系统。