在罗伯·派克(Rob Pike)在2012年的演讲Concurrency is not Parallelism (it's better)中,他列举了一群地鼠共同工作以焚烧一堆书的例子。

在幻灯片15(video 6:58)上,有三个地鼠在工作:

  • 将一本书从一堆书中装载到购物车中。
  • 一个将装满的推车移至焚化炉(然后返回空推车)。
  • 将书从购物车移入焚化炉的人。


  • slide 16上,四个地鼠正在共同解决同一问题:
  • 像以前一样,将书本从一堆装进购物车。
  • 将装满的推车移到焚化炉的人。
  • 将书从购物车移入焚化炉的人(同上)。
  • 一个将空车移回堆中的人。

  • 派克说,这将执行更多工作,但运行速度会更快。为什么?似乎工作量相同,却被更多的地鼠分担了。

    最佳答案

    诀窍是不仅有一个购物车,还有多个购物车。一台被装满,一台被清空后倒入焚化炉,另一台从焚化炉移回。这意味着每个地鼠(只要事情运转合理,并且每个任务的完成时间相对相似)就总是很忙。

    07-26 02:24