返回列表 发帖

[问题求助] ~~关于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的“进程模式”和“防假死”之间的关系
给大家说声抱歉

本帖最后由 Continued 于 2009-8-3 12:12 编辑

防假死是异步消息处理,多进程&多线程也可以同步阻塞的.如果是多进程的防假死,在双核下可能比较有优势.
个人觉得异步还是用于后台操作为好,前台显示用这个会有很多问题.
在我看来,多进程能充分利用&释放资源,安全上也便于做改进,但是打开相同网页的情况下,资源占用会比单进程大.
至于为什么TW2没有防假死,但是MT2.5可以有防假死,这个得问开发.

TOP

看得好晕啊

别胡猜了。

3种模式都是多线程


1.x到2.x的过渡,主要引入了多线程机制,所以这是进步的地方

2.x到3.x,架构的改变,引入了灵活的框架模式,当然此前优秀的多线程 不会变动的
这里是永远的家 :)

TOP

提示: 作者被禁止或删除 内容自动屏蔽
http://valid.canardpc.com/cache/banner/2854499.png
新浪/腾讯/饭否@小蛐蛐   twitter @jiayiming
如有过滤规则需要更新,请尽量原帖反馈提醒。

TOP

被楼主说晕了。。。

感觉和楼主理解的差不多,我刚才找了主站上的一张图
http://www.ioage.com/revision/template/cn/skin/default/help/SingleProcess.png

有点弄不清线程和标签的区别在哪里,按理说tw1是单进程单线程多页面,而tw2是单进程多线程多页面,tw1和tw2应该都适应上图那个模型,可是他们的线程到底是如何分配的?

TOP

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

TOP

本帖最后由 duckZCX 于 2009-8-3 12:31 编辑

- -开发组估计也不好说这个问题,我大致说一些我明白的。

1.    由于IE当时的单页面方式造成管理不便和视觉不爽等特点,才催生了各式各样的多页面浏览器,而这个多页面和线程是没有 任何联系的,更别提进程了。  

所以,TW1是单进程,单线程。 PS:IE6貌似是单进程,多线程。

2.在TW1的简洁灵活的基础上,推陈出新的TW2主要问题是解决IE核心的假死问题,于此同时多线程的 架构就已经初具模型了,而后有了TW2的多线程机制。

至此,TW2系列,单进程,多线程。  ----防假死较TW1进一步改善。


3.线程和进程永远是两个共生体,加之TW2本身的一些不足之处和开发组自己的经验,逐渐催生更好的防假死模式,那就是多进程。当然,在此模式下,会衍生出很多难以控制到的地方,这也是到目前为止TW3的防假死依旧还在改进当中,这项工作也是长期的了。

TW3系列:多进程,多线程。
这里是永远的家 :)

TOP

TW2和MT2所说的多线程都是UI多线程,IE6应该不是
其实那个所谓的更好的防假死,应该都是搜狗起的头,然后大家跟风,余下带来的问题解决就有好有坏了,自己觉得MT2.5的解决的好些.

TOP

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

TOP

TW2和MT2所说的多线程都是UI多线程,IE6应该不是
其实那个所谓的更好的防假死,应该都是搜狗起的头,然后大家跟风,余下带来的问题解决就有好有坏了,自己觉得MT2.5的解决的好些.
Continued 发表于 2009-8-3 12:37 http://bbs.ioage.com/cn/images/common/back.gif

都是程序的爹妈,都会为完善自己的孩子而努力,所以思维撞车是很常见的事情,所谓的谁早谁晚也只是噱头罢了,重要的是谁能善后得当,哈哈。
这里是永远的家 :)

TOP

那么,从TW2开始,是不是就是一个页面一个线程呢?线程又是如何分配的?
Arcanist 发表于 2009-8-3 12:39 http://bbs.ioage.com/cn/images/common/back.gif

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

- -再往上问,我要被丢西红柿了
这里是永远的家 :)

TOP

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

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

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

TOP

返回列表