[小心得]对多线程的理解
今天和同事讨论多线程的问题,有点小小感悟[这个感悟以前看多线程知识的时候也有过,不过现在忘记了^-^],下面把讨论过程简单的写一下:
PS:这个话题是从另一个话题引入进来的,那个话题我将在稍后记录
simon从上个话题中说到在单核处理器的电脑上进行计算时,用单进程进行操作速度是最快的。我当时就有个疑问,终于这个疑问在吃饭的路上被我问出来了:我问“如果起1个进程处理事情比起10个进程速度快的话,那为什么还要多进程?难道在单核处理器的电脑上就没有用多线程的必要吗?”于是展开讨论。最后在吃完饭的时候,我终于想明白了,如果所进行的操作都是需要占用cpu的话(比如说计算),这种情况用多线程就肯定会慢(在多核处理器上这事就要另说了),只有在一个任务占cpu时间短的情况下(如:一个任务执行需要10分钟,其中只占用cpu1分钟时间),才有利用多线程的必要。
后来在回来的路上我想起了之前接触多线程时看到的一个故事(这个故事在很小的时候学语文的时候也看到过),其实刚开始是讲一个时间利用的小故事:
说一个人做饭,怎么样合理的利用时间来在最短的时间内把饭做好。做饭这件事包括如下几个步骤:买米,烧水,洗米,煮饭。各占一些时间吧(为简单起见,不多说了,你懂的^^)。我们可以先烧水,在烧水的过程中可以去买米,洗米。这儿就用到了多线程的东西。这儿烧水时只有在开始的时间占用“cpu”,其他时间不用... ...
这个故事很清晰的解释了多线程这个问题... ...剩下的就很容易理解了... ... ^-^