This method might increase the completion time of a single thread. But it boosts the overall throughput of the system which is more important to us.
When you have multiple execution contexts, does that mean you can switch threads with limited overhead compared to a full context swap?
EDIT: From other slides, software threads require a full context swap while separate hardware threads live in different execution contexts?
Yes, because when you have multiple execution context then during context switch you don't have to store & restore the context.
EDIT: AFAIK these execution contexts can be used by hardware threads only. For software threads we have to do full context switch. Correct me if I am wrong.