Considerations for using multiple threads

Go commands speak explicitly to the focus thread and send an implicit Go to all other threads. For example, in a multithreaded environment with three threads named @T1, @T2, @T3, and @T2 having focus, a Go Step command would advance @T2 a single step. During this time, threads @T1 and @T3 might advance one or more steps depending on the scheduling policy of the underlying operating system. In any case, when control returns to you, all three threads have executed a whole number of steps (execution does not stop in the middle of a step).

Only active (not suspended) threads are advanced in a Go command. If the focus thread is suspended, the execution does not advance and you are prompted to either set the focus to another thread or resume the focus thread. If the focus thread dies during a Go Step, Go Event, or Go Idle command, the application immediately stops.