# ジョブの概要

> Understand the type of jobs available.

ジョブは、1 つの特定のタスクを実行する小さな作業ユニットです。メソッド呼び出しと同様に、ジョブはパラメーターを受け取り、データを処理します。ジョブは自己完結型であることも、実行前に他のジョブの完了に依存することもできます。Unity では、ジョブは [`IJob` インターフェース](/engine/6000.0/script-reference/unity-jobs/i-job.md) を実装する構造体を指します。

メインスレッドのみがジョブをスケジュールして完了できます。実行中のジョブのコンテンツにアクセスすることはできません。また、2 つのジョブが同時にジョブのコンテンツにアクセスすることはできません。ジョブを効率的に実行するために、ジョブを相互依存させることができます。Unity のジョブシステムでは、複雑な依存関係チェーンを作成して、ジョブが正しい順序で完了するようにすることができます。

## ジョブタイプ##job-types

* [IJob](/engine/6000.0/script-reference/unity-jobs/i-job.md): ジョブスレッドで単一のタスクを実行します。
* [IJobParallelFor](/engine/6000.0/script-reference/unity-jobs/i-job-parallel-for.md): タスクを並行して実行します。並行して実行される各ワーカースレッドには、ワーカースレッド間の共有データに安全にアクセスするために排他的インデックスがあります。
* [IJobParallelForTransform](/engine/6000.0/script-reference/unity-engine-jobs/i-job-parallel-for-transform.md): タスクを並行して実行します。並列で実行される各ワーカースレッドには、操作する Transform 階層から排他的な Transform があります。
* [IJobFor](/engine/6000.0/script-reference/unity-jobs/i-job-for.md): `IJobParallelFor` と同じですが、ジョブをスケジュールして、並行して実行しないようにすることができます。

## 追加リソース##additional-resources

* [ジョブの作成](/engine/6000.0/manual/scripting/optimization/job-system/creating-jobs.md)
* [ジョブの依存関係](/engine/6000.0/manual/scripting/optimization/job-system/job-dependencies.md)
* [ParallelFor ジョブ](/engine/6000.0/manual/scripting/optimization/job-system/parallel-for-jobs.md)
