Version: 2020.3
言語: 日本語
マルチスレッドとは
C# Job System の安全システム

ジョブシステムとは何か

ジョブシステムはスレッドの代わりに ジョブ (英語) を作成して マルチスレッドコード を管理します。

ジョブシステムは、複数のコアにわたる一揃いの ワーカースレッド を管理します。通常、論理 CPU コア (英語) ごとに 1 つのワーカースレッドがあり、コンテキストの切り替えを回避します (ただし、オペレーティングシステムやその他の専用アプリケーション用に一部のコアを予約する場合があります)。

ジョブシステムはジョブを ジョブキュー (英語) に加えて実行します。ジョブシステムのワーカースレッドは、ジョブキューから項目を取り出し、それらを実行します。ジョブシステムは 依存関係 (英語) を管理し、ジョブが適切な順序で実行されるようにします。

ジョブとは

ジョブは、1 つの特定のタスクを実行する小さな作業ユニットです。メソッド呼び出しと同様に、ジョブはパラメーターを受け取り、データを処理します。ジョブは自己完結型でも、実行前に他のジョブに依存することもできます。

ジョブの依存関係とは

複雑なシステムでは、ゲーム開発に必要なものと同様に、各ジョブが自己完結型であることはほとんどありません。1 つのジョブは、通常、次のジョブのデータを準備します。ジョブは処理を行うために、依存関係を認識しサポートします。 jobAjobB に依存する場合、ジョブシステムは jobB が完了するまで jobA が実行を始めないようにします。


  • 2018–06–15 公開ページ

  • C# Job System は 2018.1 で公開NewIn20181

マルチスレッドとは
C# Job System の安全システム