Kernel-Level Thread (KLT)

In a pure KLT facility, all of the work of thread management is done by the kernel. There is no thread management code in the application level, simply an API to the kernel thread facility.

Windows is an example of this approach.

When to use a kernel-level thread?

Seems like all my experience is with user-Level threads (FALSE).

  • When you use std::thread, it’s actually a kernel-level thread. The OS will sort treat these like different processes. A blocked thread will not block the other threads

Advantages of KLT

  • OS calls are blocking only the thread
  • Can schedule threads simultaneously on multiple processors