用户级线程映射内核级线程

(转侵删)
内核线程是操作系统维护的线程对象。 它是一个实际的线程,能够由处理器调度和执行。 通常,系统线程是具有权限设置,优先级等的重量级对象。内核线程调度程序负责调度内核线程。

用户程序也可以创建自己的线程调度程序。 他们可以创建自己的“线程”并模拟上下文切换以在它们之间切换。 但是,这些线程不是内核线程。 每个用户线程实际上不能单独运行,并且用户线程运行的唯一方法是实际告诉内核线程执行用户线程中包含的代码。 也就是说,用户线程比内核线程具有主要优势。 它们可以更加轻量级,因为它们不一定需要拥有自己的优先级,可以由单个进程进行管理(这样可能会更好地了解何时需要运行什么线程),并且不必创建太多线程。 出于安全性和锁定目的的内核对象。

用户线程必须与内核线程关联的原因是,用户线程本身仅是用户程序中的一堆数据。 内核线程是系统中的实际线程,因此要使用户线程取得进展,用户程序必须让其调度程序获取用户线程,然后在内核线程上运行它。 用户线程和内核线程之间的映射不必是一对一(1:1)映射; 您可以让多个用户线程共享同一个内核线程(一次只能运行其中一个用户线程),并且可以有一个用户线程在不同的内核线程(1:n)映射之间轮换。

你可能感兴趣的:(笔记)