Version: 2018.3
C# Job System の概要
ジョブシステムとは何か

マルチスレッドとは

シングルスレッド計算システムでは、1 度に 1 つの命令が入り、1 度に 1 つの結果が出ます。プログラムをロードして完了するまでの時間は、CPU に課された作業量によります。

マルチスレッドは、CPU が複数のコアにわたる多くのスレッドを同時に処理できる能力を利用したプログラミングの一種です。タスクや命令を 1 つずつ実行する代わりに、いっぺんに実行されます。

プログラムの開始時に 1 つのスレッドがデフォルトで実行されます。これが「メインスレッド」です。メインスレッドは新しいスレッドを作成してタスクを処理します。これらの新しいスレッドは互いに並行して実行され、通常、完了するとその結果をメインスレッドと同期します。

マルチスレッドに対するこのアプローチは、長期間実行されるタスクが 2–3 個ある場合にうまく機能します。しかし、ゲーム開発コードには通常、同時に実行するための小さな命令が多く含まれています。スレッドごとにスレッドを作成すると、生存期間が短い、多くのスレッドで一杯になります。これによって、CPU とオペレーティングシステムの処理能力の限界を超えてしまいます。

スレッドプール (英語) を持つことで、スレッドの生存期間の問題を緩和することが可能です。ただし、スレッドプールを使用する場合でも、同時に多数のスレッドがアクティブになる傾向があります。CPU コアより多くのスレッドを持つと CPU リソースに対しスレッドが互いに競合し、その結果、頻繁な コンテキストの切り替え が発生します。コンテキストの切り替えは、スレッドの状態を実行を通して部分的に保存し、別のスレッドで作業し、後に最初のスレッドを再構築して処理を継続するプロセスです。コンテキストの切り替えはリソースに高い負荷をかけます。そのため、可能な限り、コンテキストの切り替えを避ける必要があります。


  • 2018–06–15 編集レビュー を行ってパブリッシュされたページ

  • C# Job System は 2018.1 で公開NewIn20181

C# Job System の概要
ジョブシステムとは何か
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961