The Unity C# Job System lets you run code on multiple threads. The system provides scheduling, parallel processing, and multi-threaded safety. The Job System is a core Unity module that provides the general purpose interfaces and classes for creating and running jobs (whether or not you are using ECS). These interfaces include:
- IJob — create a Job that runs on any thread or core, as determined by the Job System scheduler.
- IJobParallelFor — create a Job that can run on multiple threads in parallel to process the elements of a NativeContainer.
- IJobExtensions — provides extension methods for running IJobs.
- IJobParalllelForExtensions— provides extension methods for running IJobParallelFor jobs.
- JobHandle — a handle for accessing a scheduled job.
JobHandleinstances also allow you to specify dependencies between Jobs.
For an overview of the Jobs System see C# Job System in the Unity Manual.
The Jobs package extends the Job System to support ECS. It contains: