您的位置:程序门 -> vc/mfc -> 进程/线程/dll



发一个问题供大家探讨


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


发一个问题供大家探讨[已结贴,结贴人:yxfchinacq]
发表于:2007-03-08 16:48:16 楼主
处理一个线性任务(没有费时的io操作),是采用多线快还是单线程快?
本问题纯属技术探讨,希望大家在讨论中获益。如果对问题的解释很独到将给于加分。
发表于:2007-03-08 16:52:141楼 得分:5
具体是什么样的线性任务?
如果从流程上不可能用并行的处理,单线程就可以了。
发表于:2007-03-08 16:57:092楼 得分:55
如果任务的所有动作都可以一直执行而没有中断(比如等待io),那在单cpu系统中一般应该是单线程更快。

当然,也不尽然,比如:假设某系统中还有另外一个变态进程开了一大堆忙线程,同时假如所用的这个操作系统纯粹地以线程为单位平均分配时间片,那么你也多开些线程至少可以多抢一些时间片,这样虽然增加了绝对时间(该进程本身所耗用的cpu时间),但可以减少是相对时间(用户感觉到的在那种变态情况下程序执行完一次所用的时间)。

多cpu和多核状态下应该更复杂一些,而且也要看线程之间通信开消和耦合程度等因素。
发表于:2007-03-08 16:57:233楼 得分:0
比如说处理一个很大的buffer
发表于:2007-03-08 16:59:564楼 得分:0
如果开很多的线程,一是线程切换耗时,二是需要进行大量的同步操作
发表于:2007-03-08 20:56:285楼 得分:0
up
发表于:2007-03-09 15:42:396楼 得分:0
开2个就行,不然界面动不了也不成啊


快速检索

最新资讯
热门点击