The task that will be executed first is the task that is first generated, as implemented by the VxWorks scheduler task. VxWorks uses a priority-based schedule by default . Thus, in your case, since T1 and T2 have the same priority, depending on which one the processor receives, it will continue to work indefinitely until it is explicitly blocked (using taskSuspend or taskDelay), after why another READY task will be executed until it is blocked, and so on. This should be controlled by semaphores or mutexes (mutices?)
. ? , , . , VxWorks, ( ), , . , . , , .