处理一个线性任务(没有费时的io操作),是采用多线快还是单线程快?
本问题纯属技术探讨,希望大家在讨论中获益。如果对问题的解释很独到将给于加分。

解决方案 »

  1.   

    如果任务的所有动作都可以一直执行而没有中断(比如等待IO),那在单CPU系统中一般应该是单线程更快。当然,也不尽然,比如:假设某系统中还有另外一个变态进程开了一大堆忙线程,同时假如所用的这个操作系统纯粹地以线程为单位平均分配时间片,那么你也多开些线程至少可以多抢一些时间片,这样虽然增加了绝对时间(该进程本身所耗用的CPU时间),但可以减少是相对时间(用户感觉到的在那种变态情况下程序执行完一次所用的时间)。多CPU和多核状态下应该更复杂一些,而且也要看线程之间通信开消和耦合程度等因素。