ThreadId should not be stored in the runtime class, we can get its value
depending on the current parallel level.
Can another thread change the parallel level while it is cached in the local variable parLevel?
No. The parlevel is per warp and threads in the warp are executed synchronously.