Difference between User Level thread and Kernel Level thread
User level thread | Kernel level thread |
---|---|
User threads are implemented by users. | kernel threads are implemented by OS. |
OS doesn’t recognize user level threads. | Kernel threads are recognized by OS. |
Implementation of User threads is easy. | Implementation of Kernel thread is complicated. |
Context switch time is less. | Context switch time is more. |
Context switch requires no hardware support. | Hardware support is needed. |
If 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. |
Multithread applications cannot take advantage of multiprocessing. | Kernels can be multithreaded. |
User level threads are designed as dependent threads. | Kernel level threads are designed as independent threads. |
Example: Java thread, POSIX threads. | Example: Window Solaris. |