返回列表 发帖

[问题求助] ~~关于TW3的三种进程模式,求“开发组”和“知情特务”解惑~~【修正错误】

本帖最后由 Arcanist 于 2009-8-3 17:30 编辑

说明见贴末

写在前面:

因一问而胡思乱想,才有此贴。有点后悔没加入内测组了~
对“进程”和“线程”一点都不清楚的同学,就当是看个热闹~~
我不懂程序,就说说TW3的三种进程模式

单进程模式——“单进程多线程”一个页面一个线程
多进程模式——“多进程单线程”一个页面一个进程


没问题吧?(有问题就惨了
一个页面多个线程,在技术上应该不容易实现,我想同步是一个大问题

假死有两个方面,一个是网页假死,还有一个是浏览器假死

TW2就是“单进程多线程”——一个线程死了,进程却不一定会死,减少了浏览器假死的概率
那么,要想浏览器不假死,是否把“界面”和“页面”分开就可以立于不败之地?两个进程足矣?

网页代码比较复杂、数据过多,代码有bug、系统繁忙、性能不足、执行效率低下
“页面”该死的时候还是会死,完全意义上的“防假死”应该很难做到
但“防浏览器假死”就很容易,单独一个进程就解决了(说起来容易,做起来麻烦肯定不断)

线程与线程之间关系比较紧密,相互影响比较大;进程与进程之间则相对独立~
所以,网页在执行的时候,“多进程单线程”比“单进程多线程”更具优势,更不容易死,但资源占用也更高

而“混合模式”就是“多进程多线程”,介于两者之间,取得一个平衡
(不妨看成是1+N个TW2的“单进程多线程”,1代表“界面”单独一个进程)

在少量网页需求时保持较低的资源占用
在大量网页需求时又不会因为同进程线程太多从而导致网页执行时不稳定

还有其它优点吗?

多进程的另一好处是不是就是“资源释放”?
这几种模式的主要区别是否就在于“抗假死”和“资源释放”的能力不同?
在一般应用下,“混合模式”是不是就已经能够胜任?
“单进程模式”的“界面”和“页面”在同一进程,为什么也能做到“防假死”?
TW2就不行?这里面有什么技术?是不是“剥离界面”到单独的一个线程?

最后,请问IE6是不是“单进程单线程”浏览器?最近有人告诉我不是……
如果不是,TW1呢?“多页面单线程”有没有存在过?标签和线程是两回事,没错吧?
那位特务说的话不得不值得考虑,我还真有点动摇了……

以上都是自己的推断,有不对的地方,还请众特务(TWer)指出
尤其希望能得到开发组的回复
问题得不到答案,让人抓破头

——————分割线——————

这个不算刺探机密吧,如果是,开发组就简单说说
就标签来说,是不是“一个标签一个线程”?剩下的我自己想办法解决
借5楼的图用一用~
http://www.ioage.com/revision/template/cn/skin/default/help/SingleProcess.png

看了熊猫老大的回复,貌似我说的没什么大问题~~哈哈

写在后面:

为了区分“多进程模式”和“混合模式”

将“多进程模式”定位成“多进程单线程”,就是说每一个进程只有一个线程
因为是多进程,所以实际上还是多线程

“混合模式”就是“多进程多线程”,每一个进程都有多个线程
这也是“单进程模式”的形式,但结合了多进程,所以才叫混合模式。

开发组没有明确指出“一个页面一个线程”的正误
但从熊猫老大的回复上看貌似就是这样了,姑且就这么认为吧
虽然都是“多进程+多线程”,但区别就在这里

————————————————————————

真不好意思,经人提点,我才发现,将“页面”和“标签”混为一谈是不对的
由于我没有说清楚,给大家造成了误解
我这里的说的“线程”只是针对“标签”来说的,没有考虑其他
就是想更清楚的了解TW3的“进程模式”和“防假死”之间的关系
给大家说声抱歉

希望得到详细解答,像我这样啰嗦、直白一点
说的太笼统还是一头雾水~~

TOP

那么,从TW2开始,是不是就是一个页面一个线程呢?线程又是如何分配的?

TOP

你挖那么详细干嘛,要技术白皮书啊?

- -再往上问,我要被丢西红柿了
duckZCX 发表于 2009-8-3 12:41 http://bbs.ioage.com/cn/images/common/back.gif

刺探高层机密
我也没办法,不弄明白,大脑一团乱麻,饭都吃不下……

TOP

单进程模式——“单进程多线程”一个页面一个线程
多进程模式——“多进程单线程”一个页面一个进程

一个进程可以包括多个线程,但一个进程至少包括一个线程,同一进程的多个线程共享进程所拥有的资源(内存、硬 ...
tjmzq 发表于 2009-8-3 12:48 http://bbs.ioage.com/cn/images/common/back.gif

你就不用来了,全是废话

TOP

楼上两位对手又遇上了,占座围观。
abcpw 发表于 2009-8-3 13:02 http://bbs.ioage.com/cn/images/common/back.gif

谢绝围观~~
稍微懂一点皮毛,就知道多线程并发处理可以提高效率
何况是内核级的技术,给我白皮书我都看不懂

TOP

那3.x的多线程什么时候能够用到啊?混合模式?还是有其他的功用
crystal0808 发表于 2009-8-3 14:33 http://bbs.ioage.com/cn/images/common/back.gif

你用多进程模式,一个页面就占一个进程
我说的“多进程单线程”就是指这个
“单线程”说的是同进程只有一个线程,所以实际上还是多线程

混合模式,就是说有多个进程,每个进程又有多个线程,一个线程一个页面

你想想TW2是不是“一个进程多个线程多个页面”?
现在变成了“多个进程多个线程多个页面”...
结合了多进程,所以才叫混合模式

TOP

本帖最后由 Arcanist 于 2009-8-3 17:11 编辑
我现在就是用的多进程模式
谁说一个进程就是一个线程呢?
258369 发表于 2009-8-3 16:55 http://bbs.ioage.com/cn/images/common/back.gif


多谢提点,这就是我一直想要弄明白的,我去测试一下
这张图不知道想说明什么,我说的线程只是针对这个标签页面来说的~
我也不知道如何说才好~~毕竟自己也是一知半解
现在编写的程序很少见到单线程的了,多线程并发处理才是效率呀
何况网页里面有那么多的数据需要执行
虽然我不懂程序,但这点还是知道的

TOP

本帖最后由 Arcanist 于 2009-8-3 17:17 编辑
后面的应该想的跟我想的一样。
前面有句“‘单线程’说的是同进程只有一个线程,所以实际上还是多线程”,这句的“实际上还是多线程”感觉不对吧。多线程是相对于一个进程里面的线程而言的吧?难道不同进程里面的 ...
crystal0808 发表于 2009-8-3 16:41 http://bbs.ioage.com/cn/images/common/back.gif

说实话我也有点糊涂了,现在的程序都是多线程了~
但我这里只考虑单个标签,那么线程如何分配呢?
一个标签占据一个进程,用一个线程来执行它,需要多线程么?
(这里只说标签,不知道可懂我的意思?)
如果从整个程序来说,TW1也不是单线程浏览器呀

TOP

本帖最后由 Arcanist 于 2009-8-3 18:10 编辑
我猜测的是这样:除了用线程来解析页面外,还需要跟别的进程间通信,因为有同组标签、有其他各个功能,所以,多进程模式下,也不会只有一个线程在工作,而还会建立多个线程来实现各个功能。

这些都是我作为普 ...
hblf 发表于 2009-8-3 17:40 http://bbs.ioage.com/cn/images/common/back.gif

我很赞同,都是我用词不准确害的
貌似很多软文也没有明确说明这一点,莫非是故意混淆概念...
如果程序只用一个线程来运行,光想想就头疼

TOP

返回列表