aliases:
- ULT
importance: "4"
由用户应用程序建立、调度和管理的线程称为「用户级线程」(ULT)。
当用户级线程发起系统调用时,由于用户空间的线程库管理,操作系统内核对这些线程的存在一无所知。通常情况下,用户级线程库将所有用户级线程映射到单个内核级线程(或者少量内核线程),从内核的角度来看,内核只知道进程的存在,而不知道用户级线程的存在,所有用户级线程在内核看来都是单个进程的一部分。因此,内核只能调度这个进程,而不能调度进程内部的各个用户级线程。因此同一进程中的两个线程不能同时运行于两个处理器上。
当用户级线程发起阻塞系统调用(如 I/O 操作、sleep 等),这个调用会让执行线程进入等待状态,直到系统调用完成。由于用户级线程库无法通知内核哪个具体的用户级线程在执行系统调用,内核将整个进程视为一个执行单元,因此整个进程会进入阻塞状态,直到系统调用完成。
优点:
缺点: