内核线程(Kernel-Level Thread,KLT)就是直接由操作系统内核支持的线程。内核通过操纵调度器对线程进行调度,并负责将线程的任务映射到各个处理器上。
程序不会直接使用内核线程,而是使用内核线程的一种高级接口——轻量级线程(LWP), 每个轻量级线程都有一个内核线程对应。就像下面这样:

每个轻量级进程都需要一个内核线程的支持,因此轻量级进程要消耗一定的内核资源,因此一个系统支持的轻量级进程的数量是有限的。
首先我们要理解什么是用户线程
从广义上讲,一个线程只要不是内核线程就是用户线程,所以从广义上讲轻量级进程程也属于用户线程,但轻量级进程的实现始终是建立在内核之上的,许多操作都要进行系统调用,效率会受到限制。
从狭义上讲,一个线程完全建立在用户空间的线程库上,系统内核不感知线程的存在,即使用户线程。这种线程的建立、同步、销毁和调度完全在用户态中完成,不需要内核的帮助。
原文:https://www.cnblogs.com/MrSaver/p/12987454.html