先从总体上来说:

从计算机底层来说:线程可比作轻量级的进程,是程序执行的最小单位,线程间的切换和调度的成本远远小于进程。另外,多核CPU时代意味着多个线程可以同时运行,这减少了线程上下文切换的开销。

从当代互联网发展趋势来说:现在的系统动不动就要求百万级甚至千万级的并发量,而多线程并发编程正是高并发系统的基础,利用好多线程机制可以大大提高系统整体的并发能力及性能。

再深入到计算机底层来探讨:

单核时代:在单核时代多线程主要是为了提高CPU和IO设备的综合利用率。举个例子,当只有一个线程的时候会导致CPU计算时,IO设备空闲;进行IO操作的时候,CPU空闲。简单地说这两者的利用率目前都是50%左右。但是当有两个线程的时候就不一样了,当一个线程执行CPU计算时,另一个线程可以进行IO操作,这样两个的利用率可以在理想情况下达到100%了。

多核时代,多核时代多线程主要是为了提高CPU的利用率。举个例子,假如要计算一个复杂的任务,我们只用一个线程的话,CPU只会一个CPU核心被利用到,而创建多个线程就可以让多个CPU核心被利用到,这样就提高了CPU的利用率。