【问题标题】:Designing pipeline for processing objects设计处理对象的管道
【发布时间】:2013-02-08 03:17:08
【问题描述】:

最近在一次采访中被问到一个简单的设计问题:

假设有一些数据需要以管道方式处理以提高效率。假设有五个任务要完成,每个任务的输出都作为下一个任务的输入,一旦一个对象的任务完成,它就可以处理下一个任务。

如何设计该系统?下一个任务将如何被触发?如何将一个任务的数据提供给下一个任务?

有什么想法吗?这是在一次 C++ 采访中提出的。因此,面向 C++ 的设计会很好。

【问题讨论】:

  • “延迟初始化是将对象的创建、值的计算或其他一些昂贵的过程延迟到第一次需要时的策略。” 是我想到的第一件事。

标签: c++ pipeline


【解决方案1】:

这是一个面试问题,因此他们希望您大声思考并展示您的经验的深度。没有一个“设计”甚至“答案”,因此您应该尽可能多地考虑不同的案例。

你可以花一整本书在管道设计上,所以我不会(也不能)列出你想要注意的所有方面,但这里有一些常见的:

  • 注意瓶颈
  • 在管道任务之间具有通用协议
  • 管道能否拒绝输入,甚至向后传递,您如何处理这个问题
  • 是否需要大量类型转换
  • 您能否将其并行化,并在第一个项目完成之前将更多数据输入管道

【讨论】:

    猜你喜欢
    • 2017-10-10
    • 1970-01-01
    • 2014-11-07
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多