User-Level Thread
All of the work of thread management is done by the application and the kernel is not aware of the existence of threads.
Advantages of ULT:
- Less switching overhead (save 2 mode switches)
- Scheduling is app specific
- ULT can run on any OS (no changes to underlying kernel)
Disadvantages:
- In a typical OS, many system calls are blocking. As a result, when a ULT executes a system call, not only is that thread blocked, but all of the threads within the process are blocked as well.
- A multithreaded application cannot take advantage of multiprocessing in ULT