用户执行绪(user-level threads)指不需要核心支持而在用户程式中实现的执行绪,其不依赖于作业系统核心,套用进程利用执行绪库提供创建、同步、调度和管理执行绪的函式来控制用户执行绪。这种执行绪甚至在象 DOS 这样的作业系统中也可实现,但执行绪的调度需要用户程式完成,这有些类似 Windows 3.x 的协作式多任务。
优点:1.执行绪位于用户空间(即不需要模式切换)。
2.完全控制执行绪调度器(例如:网站伺服器)。
3.独立于作业系统(执行绪可以在不支持它们的作业系统上运行)。
4.运行时系统(run time system)可以切换用户空间中的本地阻塞执行绪(例如:等待另一个执行绪完成).
缺点:1.系统调度中,对一个执行绪的阻塞将会导致整个进程阻塞;(例如:当一个执行绪因 I/O 而处于等待状态时,整个进程就会被调度程式切换为等待状态,其他执行绪得不到运行的机会)
2.网站伺服器中,一个页面的错误将导致整个进程阻塞。
3.非真正意义的执行绪并行(一个进程安排在单个CPU上)。
4.不存在时钟中断(例如,如果用户执行绪是非抢占式(non-preemptive)的,将无法被“进程调度”(schedulers)以round-robin的调度算法调用,因为round-robin调度算法中限制了cpu时间片)。
用户执行绪不需要额外的核心开支,并且用户态执行绪的实现方式可以被定製或修改以适应特殊套用的要求,但是;而核心执行绪则没有这个限制,有利于发挥多处理器的并发优势,但却占用了更多的系统开支。















