0

最近、インタビューで簡単なデザインの質問をされました。

効率化のためにパイプライン方式で処理する必要があるデータがあるとします。完了するタスクが 5 つあり、各タスクの出力が次のタスクへの入力として機能し、オブジェクトのタスクが完了すると、次のタスクを処理できるとします。

そのシステムをどのように設計するか?次のタスクはどのようにトリガーされますか? あるタスクからのデータを次のタスクにどのように渡すことができますか?

何か案は?これは、C++ のインタビューで尋ねられました。したがって、C++ 指向の設計が適しています。

4

1 に答える 1

3

これはインタビューの質問なので、声に出して考え、あなたの経験の深さを示してほしいと彼らは望んでいます. 「設計」も「答え」もありません。そのため、さまざまなケースについてできるだけ多くのことを考える必要があります。

パイプラインの設計については本全体を費やすことができるので、気を付けたいすべての側面をリストすることはできません (そしてリストすることもできません) が、いくつかの一般的な側面を以下に示します。

  • ボトルネックに注意
  • パイプライン タスク間で共通のプロトコルを持つ
  • パイプラインは入力を拒否したり、逆方向に渡したりできますか?これをどのように処理しますか?
  • 多くの型変換が必要ですか
  • それを並列化して、最初のアイテムが完成する前でも、パイプラインにさらにデータをフィードできますか
于 2013-02-22T13:35:50.363 に答える