C++ 为处理对象设计管道

C++ 为处理对象设计管道,c++,pipeline,C++,Pipeline,最近我在一次采访中被问到一个简单的设计问题: 假设有一些数据需要以流水线方式进行处理以提高效率。假设有五个任务要完成,每个任务的输出作为下一个任务的输入,一旦一个对象的任务完成,它就可以处理下一个任务 如何设计该系统?下一个任务将如何触发?如何将一个任务中的数据提供给下一个任务 有什么想法吗?这是在C++访谈中被问到的。因此,面向C++的设计将是很好的。p> 这是一个面试问题,所以他们想让你大声思考,展示你的经验深度。没有一个“设计”或“答案”,因此你应该尽可能多地考虑不同的情况 你可以花一整本

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

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

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


有什么想法吗?这是在C++访谈中被问到的。因此,面向C++的设计将是很好的。p> 这是一个面试问题,所以他们想让你大声思考,展示你的经验深度。没有一个“设计”或“答案”,因此你应该尽可能多地考虑不同的情况

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

  • 注意瓶颈
  • 在管道任务之间具有公共协议
  • 管道能否拒绝输入,甚至向后传递输入,您如何处理
  • 它需要大量的类型转换吗
  • 你能将它并行化,甚至在第一个项目完成之前就向管道中提供更多数据吗

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

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

  • 注意瓶颈
  • 在管道任务之间具有公共协议
  • 管道能否拒绝输入,甚至向后传递输入,您如何处理
  • 它需要大量的类型转换吗
  • 你能将它并行化,甚至在第一个项目完成之前就向管道中提供更多数据吗
“延迟初始化是一种策略,将对象的创建、值的计算或其他一些昂贵的过程延迟到第一次需要时。”这是我想到的第一件事。“延迟初始化是一种策略,将对象的创建、值的计算或其他一些昂贵的过程延迟到第一次需要时。”这是我想到的第一件事。