How virtual processors service threads
A virtual processor services multiple threads concurrently by switching between them.
At a given time, a virtual processor can run only one thread. A virtual processor runs a thread until it yields. When a thread yields, the virtual processor switches to the next thread that is ready to run. The virtual processor continues this process, eventually returning to the original thread when that thread is ready to continue. Some threads complete their work, and the virtual processor starts new threads to process new work. Because a virtual processor continually switches between threads, it can keep the CPU processing continually. The speed at which processing occurs produces the appearance that the virtual processor processes multiple tasks simultaneously and, in effect, it does.
- Control structures
- Context switching
- Stacks
- Queues
- Mutexes
These topics describe how virtual processors use these structures and methods.