ジョブシステムはスレッドの代わりに ジョブ (英語) を作成して マルチスレッドコード を管理します。
ジョブシステムは、複数のコアにわたる一揃いの ワーカースレッド を管理します。通常、論理 CPU コア (英語) ごとに 1 つのワーカースレッドがあり、コンテキストの切り替えを回避します (ただし、オペレーティングシステムやその他の専用アプリケーション用に一部のコアを予約する場合があります)。
ジョブシステムはジョブを ジョブキュー (英語) に加えて実行します。ジョブシステムのワーカースレッドは、ジョブキューから項目を取り出し、それらを実行します。ジョブシステムは 依存関係 (英語) を管理し、ジョブが適切な順序で実行されるようにします。
ジョブは、1 つの特定のタスクを実行する小さな作業ユニットです。メソッド呼び出しと同様に、ジョブはパラメーターを受け取り、データを処理します。ジョブは自己完結型でも、実行前に他のジョブに依存することもできます。
複雑なシステムでは、ゲーム開発に必要なものと同様に、各ジョブが自己完結型であることはほとんどありません。1 つのジョブは、通常、次のジョブのデータを準備します。ジョブは処理を行うために、依存関係を認識しサポートします。
jobA
が jobB
に依存する場合、ジョブシステムは jobB
が完了するまで jobA
が実行を始めないようにします。
2018–06–15 Page published
C# Job System は 2018.1 で公開NewIn20181