Techniques for thread scheduling
1) Load Sharing: The term load sharing used to distinguish this strategy from load-balancing schemes in which work is allocated on a more permanent basis.
2) Gang Scheduling: This is of a set of related threads is scheduled to Run on a set of processors at the same time, on one-to-one basis.
3) Dedicated Processor Assignment: When application is scheduled, its threads are assigned to a processor. Each program is allocated a number of processors equal to the number of threads in the program, for the duration of the program execution. In this case some processors may be idle.
4) Dynamic Scheduling: The scheduler efficiently assigns resources to Threads, and permits them to communicate with great flexibility. The number of threads in a process can be altered dynamically to the course of execution.