三只地鼠在工作,但可能会有延误。每只地鼠是个独立的步骤,附加协调(通信)。

  更细粒度的并发

  增加一只地鼠用来运回空推车。四只地鼠在工作,运行得更加流畅,每只地鼠都在做一个简单的任务。

  如果我们把事情安排的足够好(现实中很难但不是不可能),速度会是先只有一只地鼠的那个设计的四倍。

  观察结论:我们在一个已有的设计(指三个地鼠的那个设计)中添加一个并发的步骤(第四只地鼠)增强了系统的性能。更多的地鼠干了更多的活,系统运行得更好。并发比简单的并行对问题要有更深的洞察。

  我们有四个并发的步骤:1.装书到推车上2.把推车运到火炉边3.把书卸到火炉里4.运回空推车

  不同的并发设计能以不同的方式来并行。

  更多的并行

  我们以另一个维度来并行,并行使这样的设计变的容易。八只地鼠,都在繁忙工作。

  但也可能根本没有并行

  谨记:即使一次只能有一只地鼠在工作(零并行),这也不失为一个良好的并发的解决方案。

  另一种设计

  下面也是一种用并发组成来解决问题的设计。两只地鼠,再加上一个中转堆。

  以一般的方式来并行

  用更多的并发程序来提高吞吐量

  以一般的方式来并行

  用更多的并发程序来提高吞吐量