Abstract


All threads of a process can be scheduled

If one Thread in a Process (进程) causes a Page Fault, the Kernel can easily check to see if the process has any other runnable threads, and if so, run one of them while waiting for the required page to be brought in from the disk. Or Kernel can run thread from other process.

Resource Intense

All calls that might block a Thread are implemented as System Call (系统调用), at considerably greater cost than a call to a Runtime System procedure.

Relatively greater cost of creating and destroying thread in the Kernel too.

Recycling threads to reduce resource usage

When a thread is destroyed, it is marked as not runnable, but its kernel data structures are not otherwise affected. When a new thread must be created, an old thread is reactivated, saving some overhead of creating a new one.

Thread recycling is also possible for User Thread, but since the thread-management overhead is much smaller, there is less incentive to do this.