定义
用户线程:由一组用户级的线程库函数来完成线程的管理,包括线程的创建,终止,同步和调度;
————————————————————————————————————
内核线程:由内核通过系统调用实现的线程机制,由内核完成线程的创建,终止和管理。
用户线程的特征和缺点
特征:
- 不依赖操作系统内核;
- 在用户空间实现的线程机制(TCB由线程库函数维护);
- 同一进程的用户线程切换速度较快(无需用户态/内核态的转换);
- 允许每个进程拥有自己的线程调度算法;
缺点:
- 线程发起系统调用而阻塞时,整个进程进行等待;
- 不支持基于线程的处理机抢占;
- 只能按进程分配cpu时间(线程越多,每个线程分配的时间越少);
内核线程
特征:
- 由内核维护PCB和TCB;
- 线程执行系统调用而被阻塞不影响其他线程;
- 线程的创建,终止和切换的代价相对较大(通过系统调用/内核函数,在内核实现);
- 以线程为单位进行CPU时间的分配(多线程的进程可获得更多的CPU时间)
缺点:
由内核进程线程的创建,终止和管理,开销比用户进程大;