现在的位置: 首页 > 综合 > 正文

<转>用户线程和内核线程

2014年08月17日 ⁄ 综合 ⁄ 共 447字 ⁄ 字号 评论关闭

 用户线程与内核线程

 
用户线程不需要内核支持,在用户程序中实现。
 
内核线程,需要内核参与,依赖于操作系统核心。需要在内核态和用户态切换。有利于发挥多处理器并发优势。
 
用户级线程和内核级线程的区别:
 
(1)内核支持线程是OS内核可感知的,而用户级线程是OS内核不可感知的。
 
(2)用户级线程的创建、撤消和调度不需要OS内核的支持,是在语言(如Java)这一级处理的;而内核支持线程的创建、撤消和调度都需OS内核提供支持,而且与进程的创建、撤消和调度大体是相同的。
 
(3)用户级线程执行系统调用指令时将导致其所属进程被中断,而内核支持线程执行系统调用指令时,只导致该线程被中断。
 
(4)在只有用户级线程的系统内,CPU调度还是以进程为单位,处于运行状态的进程中的多个线程,由用户程序控制线程的轮换运行;在有内核支持线程的系统内,CPU调度则以线程为单位,由OS的线程调度程序负责线程的调度。
 
(5)用户级线程的程序实体是运行在用户态下的程序,而内核支持线程的程序实体则是可以运行在任何状态下的程序。

抱歉!评论已关闭.