Multithreading Models | Many-To-One Model | One-To-One Model | Many-To-Many Model

Multithreading Models

The user threads must be mapped to kernel threads, by one of the following strategies.

  • Many-To-One Model
  • One-To-One Model
  • Many-To-Many Model

Many-To-One Model

  • In the many-to-one model, many user-level threads are all mapped onto a single kernel thread.
  • Thread management is handled by the thread library in user space, which is efficient in nature.

Many to One thread model

One-To-One Model

  • The one-to-one model creates a separate kernel thread to handle each and every user thread.
  • Most implementations of this model place a limit on how many threads can be created.
  • Linux and Windows from 95 to XP implement the one-to-one model for threads.

One to One thread model

Many-To-Many Model

  • The many-to-many model multiplexes any number of user threads onto an equal or smaller number of kernel threads, combining the best features of the one-to-one and many-to-one models.
  • Users can create any number of the threads.
  • Blocking the kernel system calls does not block the entire process.
  • Processes can be split across multiple processors.

Many to Many thread model