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

Jac*_*ley 6 multithreading google-chrome thread-safety

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

Mik*_*sen 11

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

在此输入图像描述

来自文档:

我们对浏览器选项卡使用单独的进程来保护整个应用程序免受渲染引擎中的错误和故障的影响.我们还限制每个渲染引擎进程对其他进程以及系统其余部分的访问.在某些方面,这为Web浏览带来了内存保护和访问控制带给操作系统的好处.