Job은 본디 하나의 작업만 수행 할 수 있습니다. 그러나 ParallelFor Job은 수많은 오브젝트에 동일한 작업을 할 수 있도록 별도의 기능이 제공됩니다.
[ ParallelFor Job 정의 예시: Unity Document ]
struct IncrementByDeltaTimeJob: IJobParallelFor
{
public NativeArray<float> values;
public float deltaTime;
public void Execute (int index)
{
float temp = values[index];
temp += deltaTime;
values[index] = temp;
}
}
[ParallelFor Job 특징]
• NativeArray를 사용하여 데이터 소스로 동작합니다.
• ParallelFor Job은 여러 개의 코어에서 동작합니다. 코어당 하나의 잡을 가지며, 각각 일정량의 작업을 처리합니다.
• 데이터 소스 항목당 하나의 Execute 메서드를 호출하며, Execute 메서드엔 정수 파라미터가 있습니다
ParallelFor Job 예약
ParallelFor Job을 예약할 때 작업을 Batch로 나누어 코어 간에 배포합니다. 각 Batch에는 Execute 메서드의 하위 집합이 포함됩니다.