Difference between User Level Thread and Kernel Level Thread

There are two types of thread in operating systems:
1. User Level Thread
2. Kernel Level Thread

User Level Thread:

This type of threads loaded entirely in user space, the kernel knows nothing about them. When threads are managed in user space, each process needs its own private thread table. The thread table consists of the information of the program counter, stack pointer, registers, state, etc. The thread table managed by the run-time system. When a thread is moved to a ready state or blocked state. The information needed to restart it is stored in the thread table.

Kernel Level Thread:

In Kernel Level Thread, the kernel does total work of thread movement. There is no thread table in each process. The kernel has a thread table that keeps track of all the threads in the system. When a thread wants to create a new thread or destroy any existing thread, it makes a kernel call which takes the action.
The kernel’s thread table holds each thread registers, state and other information. The information is the same as with user-level threads, but it is now in the kernel instead of user-space.