复杂任务的两种批处理模式

给一个很能吃的人 上三份饺子,三份粥,三只烤乳猪,他会怎么选择?

1. 轮换式:吃盘饺子,喝碗粥,吃只猪 –> 吃个饺子,喝碗粥,吃只猪 –> 吃个饺子,喝碗粥,吃只猪

2. 流水线式:   吃三盘饺子 –> 吃三碗粥 –> 吃三只猪

如果我们定义: 一盘饺子 +一碗 粥 + 一只烤猪 = 一份套餐

那么,如果食客选择第一种吃法,那它就吃了三份套餐,从任务定义的角度,我们的设计可以更简洁

如果他选择第二种吃法,设计上不那么简明了,但效率可能会好很多。因为吃第一盘饺子的器皿可以马上用来吃第二盘、第三盘,吃粥的碗也是一样,整顿饭一共要“端碗/盘”三次。而对第一种吃法而言,他吃完第一盘饺子后,要换用粥碗去吃第一碗粥,然后用换另一种食器去吃猪,接着又换回盘来吃饺子…… 整顿饭它要“端碗/盘”九次

或许你认为我在说废话,根本没啥实际。但如果把上面的 吃东西 替换为 下载东西, 把 端/放碗 换成 建立/释放 网络连接, 你可能就不会这样想了

Leave a Reply

Your email address will not be published. Required fields are marked *