看了《七周七并发模型》《JAVA并发编程实战》《C++并发编程实战》里面关于为什么使用并发(此文不严格区分并发、并行)的介绍,
感觉还是《七周七并发模型》归纳地最好,不过另外两本书却提供了不错的例子。
(1)性能(效率)
这个是最容易理解的,得益于现在多核处理器的流行。
使得所有的核心都没有休息,在其他条件不变的情况下,能做更多的任务。
(2)简化设计(简化建模)
如果你用一条线程来进行多任务处理,你被迫编写任务切换框架。
而且本身的建模也更加困难。
实际的例子如《JAVA并发编程》提到的,如果你使用一个线程来实现IO的处理,你不得不使用异步IO,而如果是多线程,你完全可以使用同步IO。
而异步IO比同步IO的设计复杂很多,也更容易出错。
(3)响应能力
这个尤其是针对GUI的实时响应。
(4)容错能力
这个容错能力是说,采用多机协作来实现灾难应对。
而多机来执行任务,需要由并发来支撑。