Skip to content
Related Articles

Related Articles

Difference between User Level thread and Kernel Level thread

Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 02 Nov, 2022
Improve Article
Save Article
S. No.ParametersUser Level ThreadKernel Level Thread
1.Implemented byUser threads are implemented by users.Kernel threads are implemented by Operating System (OS).
2.RecognizeOperating System doesn’t recognize user level threads.Kernel threads are recognized by Operating System.
3.ImplementationImplementation of User threads is easy.Implementation of Kernel thread is complicated.
4.Context switch timeContext switch time is less.Context switch time is more.
5.Hardware supportContext switch requires no hardware support.Hardware support is needed.
6.Blocking operationIf one user level thread performs blocking operation then entire process will be blocked.If one kernel thread perform blocking operation then another thread can continue execution.
7.MultithreadingMultithread applications cannot take advantage of multiprocessing.Kernels can be multithreaded.
8.Creation and ManagementUser level threads can be created and managed more quickly. Kernel level threads take more time to create and manage. 
9.Operating SystemAny operating system can support user-level threads.Kernel level threads are operating system-specific.
10.Thread ManagementThe thread library contains the code for thread creation, message passing, thread scheduling, data transfer and thread destroyingThe application code does not contain thread management code. It is merely an API to the kernel mode. The Windows operating system makes use of this feature.
11.ExampleExample: Java thread, POSIX threads.Example: Window Solaris.
  • User Level Threads are simple and quick to create.
  • Can run on any operating system
  • They perform better than kernel threads since they don’t need to make system calls to create threads.
  • In user level threads, switching between threads does not need kernel mode privileges.
  • Scheduling of multiple threads that belong to same process on different processors is possible in kernel level threads.
  • Multithreading can be there for kernel routines.
  • When a thread at the kernel level is halted, the kernel can schedule another thread for the same process.
  • Multithreaded applications on user-level threads cannot benefit from multiprocessing.
  • If a single user-level thread performs a blocking operation, the entire process is halted.
  • Transferring control within a process from one thread to another necessitates a mode switch to kernel mode.
  • Kernel level threads takes more time to create and manage than user level threads.
My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!