为了账号安全,请及时绑定邮箱和手机立即绑定

了解 Rob Pike 的书籍焚烧示例

了解 Rob Pike 的书籍焚烧示例

Go
富国沪深 2021-09-27 20:49:31
在 Rob Pike 的 talk 2012 talk 中,Concurrency is not Parallelism (it's better),他有一个运行的例子,一群地鼠一起工作烧掉一堆书。在幻灯片 15(视频 6:58)上,有三个地鼠在工作:一个把书从一堆装进手推车。一个将装满的推车移至焚化炉(然后返回空推车)。一个将书籍从推车移入焚化炉。在幻灯片 16 上,四个地鼠正在共同解决同一个问题:一个把书从一堆装进手推车(和以前一样)。一个将装满的推车移至焚化炉。将书籍从手推车移入焚化炉(和以前一样)。一个将空车移回堆中。Pike 说这会执行更多的工作,但运行速度会更快。为什么?这似乎是相同数量的工作,由更多地鼠共享。
查看完整描述

3 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

考虑一个购物车的往返行程。

在第一种情况下,我们有:

  • 一个将装满的推车移至焚化炉(然后返回空推车)。

那是:

  • Gopher 1:将装满的推车移至焚化炉。

  • Gopher 1:将空车移回堆中。

在第二种情况下,我们有:

  • 一个将装满的推车移至焚化炉。

  • 一个将空车移回堆中。

那是:

  • Gopher 1:将装满的推车移至焚化炉。

  • Gopher 1:没有手推车走回堆。

  • Gopher 2:将空车移回堆中。

  • Gopher 2:没有手推车走回焚化炉。

尽管我们有额外的工作,但由于多种原因,例如分工,它可能会运行得更快。

劳动分工

因此,举个例子,从一个非常微不足道的制造业,但一个经常注意到分工的制造业,一个针匠的行业:一个没有受过这个行业教育的工人(分工从事一项独特的行业),也不熟悉其中所用机器的使用(可能由相同的分工发明这种机器),也许以他最大的勤奋,几乎不可能在一天,肯定赚不到二十。但就现在这种业务的经营方式而言,整个工作不仅是一种特殊的行业,而且还分为许多部门,其中大部分也是特殊的行业。一个人拉出电线;另一个直它; 第三个切掉它;第四点吧;第五个在顶部研磨它以接收头部; 制作头部需要两到三个不同的操作;穿上它是一件奇特的事;美白针脚是另一回事;将它们放入报纸本身甚至是一种交易;以这种方式,制作别针的重要业务被分为大约 18 个不同的操作,在一些制造商中,这些操作都由不同的人完成,尽管在其他制造商中,有时同一个人会执行其中的两三个。我见过一个这样的小工厂,那里只雇佣了十个人,其中一些人因此进行了两到三个不同的操作。但是,尽管他们非常贫穷,因此对必要的机器漠不关心,但当他们努力时,他们可以,在他们中间一天制作大约十二磅的别针。一磅以上有四千个中等大小的别针。因此,这十个人一天可以制作超过四万八千个针脚。因此,每个人制作十分之一的四万八千个针脚,可以说是一天制造四千八百个针脚。但是,如果他们都分别独立地工作,而且他们中的任何一个都没有受过这种特殊业务的教育,那么他们肯定不可能每个人一天都做二十根针,也许连一根针都做不到;也就是说,当然,不是二百四十,也许不是四千八百,因为它们不同操作的适当划分和组合,它们目前能够执行的部分。一磅以上有四千个中等大小的别针。因此,这十个人一天可以制作超过四万八千个针脚。因此,每个人制作十分之一的四万八千个针脚,可以说是一天制造四千八百个针脚。但是,如果他们都分别独立地工作,而且他们中的任何一个都没有受过这种特殊业务的教育,那么他们肯定不可能每个人一天都做二十根针,也许连一根针都做不到;也就是说,当然,不是二百四十,也许不是四千八百,因为它们不同操作的适当划分和组合,它们目前能够执行的部分。一磅以上有四千个中等大小的别针。因此,这十个人一天可以制作超过四万八千个针脚。因此,每个人制作十分之一的四万八千个针脚,可以说是一天制造四千八百个针脚。但是,如果他们都分别独立地工作,而且他们中的任何一个都没有受过这种特殊业务的教育,那么他们肯定不可能每个人一天都做二十根针,也许连一根针都做不到;也就是说,当然,不是二百四十,也许不是四千八百,因为它们不同操作的适当划分和组合,它们目前能够执行的部分。因此,一天可以在其中制作超过四万八千个针脚。因此,每个人制作十分之一的四万八千个针脚,可以说是一天制造四千八百个针脚。但是,如果他们都分别独立地工作,而且他们中的任何一个都没有受过这种特殊业务的教育,那么他们肯定不可能每个人一天都做二十根针,也许连一根针都做不到;也就是说,当然,不是二百四十,也许不是四千八百,因为它们不同操作的适当划分和组合,它们目前能够执行的部分。因此,一天可以在其中制作超过四万八千个针脚。因此,每个人制作十分之一的四万八千个针脚,可以说是一天制造四千八百个针脚。但是,如果他们都分别独立地工作,而且他们中的任何一个都没有受过这种特殊业务的教育,那么他们肯定不可能每个人一天都做二十根针,也许连一根针都做不到;也就是说,当然,不是二百四十,也许不是四千八百,因为它们不同操作的适当划分和组合,它们目前能够执行的部分。制作十分之一的四万八千针,也算是一天制作四千八百针了。但是,如果他们都分别独立地工作,而且他们中的任何一个都没有受过这种特殊业务的教育,那么他们肯定不可能每个人一天都做二十根针,也许连一根针都做不到;也就是说,当然,不是二百四十,也许不是四千八百,因为它们不同操作的适当划分和组合,它们目前能够执行的部分。制作十分之一的四万八千针,也算是一天制作四千八百针了。但是,如果他们都分别独立地工作,而且他们中的任何一个都没有受过这种特殊业务的教育,那么他们肯定不可能每个人一天都做二十根针,也许连一根针都做不到;也就是说,当然,不是二百四十,也许不是四千八百,因为它们不同操作的适当划分和组合,它们目前能够执行的部分。他们当然不可能每个人一天都做 20 根针,也许连一根针都做不到;也就是说,当然,不是二百四十,也许不是四千八百,因为它们不同操作的适当划分和组合,它们目前能够执行的部分。他们当然不可能每个人一天都做 20 根针,也许连一根针都做不到;也就是说,当然,不是二百四十,也许不是四千八百,因为它们不同操作的适当划分和组合,它们目前能够执行的部分。


查看完整回答
反对 回复 2021-09-27
?
慕森卡

TA贡献1806条经验 获得超8个赞

假设是携带装载的手推车的地鼠在从手推车中取出书籍后必须执行某种清理或通信。现在他可以这样做,另一个地鼠将空车运回去。因此,装载地鼠不必等待推车回来。


查看完整回答
反对 回复 2021-09-27
  • 3 回答
  • 0 关注
  • 279 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信