2013-02-22 22 views
0

最近我一直在問一個簡單的問題,設計在接受採訪時:處理設計管道對象

假設存在需要以管線方式效率要處理一些數據。假設有五個任務需要完成,每個任務的輸出都作爲下一個任務的輸入,一旦一個任務完成了一個對象,它就可以處理下一個任務。

如何設計該系統?下一個任務將如何被觸發?如何將來自一項任務的數據提供給下一項任務?

任何想法?這是在C++面試中提出的。所以,面向C++的設計會很好。

+0

*「延遲初始化是延遲創建對象,計算值或其他一些昂貴的策略過程,直到第一次需要它爲止。「*我首先想到的是。 – 2013-02-22 13:33:57

回答

3

這是一個面試問題,所以他們希望你大聲思考並展示你的經驗深度。沒有一個「設計」,甚至「答案」,因此你應該儘可能多地考慮不同的案例。

您可以在流水線設計中花費一整本書,所以我不會(也不能)列表中,您要注意,但這裏各方面有一些常見的:

  • 當心瓶頸
  • 具有管道任務
  • 管道可以拒絕輸入,甚至倒退通過他們之間的共同協議,你如何處理這個
  • 是否需要大量的類型轉換的
  • 燦你可以將它並行化,並在第一個項目已經完成之前將更多的數據輸入到管道中