Skip to content

Latest commit

 

History

History
16 lines (10 loc) · 1.48 KB

用管道分解任务.md

File metadata and controls

16 lines (10 loc) · 1.48 KB

##用管道分解任务

管道技术被用来组织多个任务,这些诶任务合作的方式来共同解决一个问题。管道将大型的任务分割成独立并行的小任务。管道模型可以类比成汽车工厂的装配线,只不过输入代替底盘称为加工的原始材料。原料经过不同的生产阶段,几个worker一个接一个执行不同的操作直到产生最终结束。这个模型和顺序范式的开发类似,任务一个接一个的作用于数据上,正常情况下,一个任务以上一个任务的结果为输入。那么这个模型和顺序技术的区别是什么呢?管道技术中的每个阶段都拥有自己的workers,并且这些workers是以并行的方式执行的。

计算上下文的一个栗子可能是一个批量处理图片,并将抽取出的数据存入数据库的系统。我们将有以下实际的顺序:

  • 接受输入的图像并且以对这些图片以并行的方式进行排列,这些图片将在第二阶段进行处理
  • 解析图像,并且有用的信息将会被送到第三阶段
  • 在第三阶段,过滤器被并行的应用在图像上
  • 来自第三阶段的数据结果被保存在数据库中

每个阶段的管道技术都用自己workers独立的执行。然而,它建立了数据通信机制,以便进行信息的交换。

下图展示了管道的概念: