简单来说就是为了提高效率
在单核CPU中,多线程主要是为了降低阻塞。 多线程的并发,其实是一种“伪并行”。 在每个时刻,真正执行的只有一个线程。 但是,由于多线程减少了等待IO操作(比如:磁盘、网络、数据库等)时间, 所以,多线程大大提高了程序的效率。
还举车间与车间工人的例子,简单说明一下: 车间要生产10个鸡蛋灌饼, 如果让一个工人来做的话,花费的时间为:通知工人的时间[1毫秒]+工人生产的时间[2000毫秒]。 这里,工人生产的时间我们就可以理解为等待IO操作的时间。 一个工人近似花费:1+(2000 x 10)≈20000毫秒 如果让10个工人来做的话, 将花费:(1 x 10)+2000≈2000毫秒 这就是多线程的优势。
至于多线程的应用场景,只要是对速度与效率有所追求的地方,都可以看到多线程的身影。
正因为追求效率,后面我们会看到线程池的应用, 线程池的产生就是因为线程之间的创建、撤销、切换具有较大的时空开销, 尽管它的开销比较进程要小得多。