多进程框架

来源:互联网 发布:金融数据分析师累吗 编辑:程序博客网 时间:2024/06/05 06:46

今天早晨上班的路上突然想到chromium的多进程实现,我们分析可以知道,

chrome界面上面你看到的所有所有窗口都是在同一个主进程里面创建的,但是tab对应的网页的渲染却不是在这个进程里面做的。

我突然想到了另外一种实现,我们每天对着的windows自己的窗口:比如资源管理器,任务栏都是在explorer.exe中生成的,但是每当我们新建出一个进程的时候任务栏(也就是在exploer.exe的一个窗口中)会在增加一个tab,而在非任务栏区域新建新进程的窗口,chrome跟这个其实就很类似了,但是两种实现方式却不同,因为在chrome中你所见到的窗口都在同一个进程中,很显然你看到的windows窗口实现的肯定不都是一个进程里面,虽然他们看起来是拥有父子关系的窗口。接下来我想到了ie8以后的版本就是多进程浏览器,去看了看发现实现方式跟windows类似,也就是验证我说的这种实现方式的可行性,为什么chromium当初不这么做呢?跟chrome跨平台有关系吗?现在我还不清楚,后面再研究研究吧,不过这样做在windows下面绝对可行。

windows这种实现方式去实现浏览器的好处:

1. 多进程的程序便于释放内存

2. 国内大量浏览器做了防假死,如果实现了上面说的这个方法,完全没有必要做,主窗口永远不会因为网页窗口被卡死而假死,因为它们在不同的进程里面,但是假死的窗口体验体验依然很糟糕,chrome不会出现这种糟糕的体验。


后面尝试一把,做一个多进程框架程序。

原创粉丝点击