小时候学习,最被告诫的是不要一心多用,要专心一致。专心致志是非常好的,但是如果能够一心多用,还能面面俱到,不是更好吗?对人也许难了一点。但是对计算机就会很容易。
人类不可以一边开车,一边看手机。但是计算机就可以,自动驾驶系统可以负责开车,音乐播放系统则可以同时播放音乐。二者可以使用同一个CPU,由CPU分配资源来运行。
多线程大概就是一心多用的同义词。线程是CPU能够处理的最小单位,而进程则是系统所能处理的最小单位。所以,线程(thread)是进程(Process)的组成部分,进程可以包含一个,或者多个线程。
至于说,CPU是如何决定何时处理哪个线程,怎么样分配其计算资源的,这个还是有待于我日后多学习。现在来看,我是把不同的线程理解为不同的任务小分队。大家分进合击,共同完成开发者赋予的任务。