Different job types: https://docs.unity3d.com/Manual/job-system-jobs.html#:~:text=the correct order.-,Job types,-IJob%3A Runs a
It says that IJobParallelFor runs a task in parallel, ie on multiple worker threads.
And IJobFor runs on a single worker thread. They both have Execute(int index).
Now, I initially thought that since IJobFor runs on a single worker thread, I could e.g increment some global variable in every Execute() to track how many Execute()s have already been run.
But that is not possible, as the Execute()s may run on multiple cores.
The Unity page for IJobFor says:
Each iteration must be independent from other iterations and the safety system enforces this rule for you. The indices have no guaranteed order and are executed on multiple cores in parallel.