Linux线程机制的分类和特性


(1)用户级线程

主要解决的是上下文切换的问题,它的调度算法和调度过程会全部由用户自行选择解决,在运行时不需要特定的内核支持。操作系统往往会提供一个用户空间的线程库,该用户程序库提供了线程的创建、调度和撤销等功能,而内核仍然对进程进行管理。如果一个进程中的某一个线程调用了一个阻塞的系统调用函数,那么该进程包括该进程中的线程也同时被阻塞。这种用户级线程的主要缺点是在一个进程中的多个线程的调度中无法发挥多处理器的优势。

(2)轻量级的进程

轻量进程是内核支持的用户线程,是内核线程的一种抽象对象。每个线程拥有一个或多个轻量级线程,而每个轻量级线程分别被绑定在一个内核线程上。

(3)内核线程

这个线程不允许不同进程中的线程按照同一相对优先调度方法进行调度,这样就可以发挥多处理器并发优势。

进程是系统中程序执行和资源分配的基本单位。

每个进程都拥有自己的数据段、代码段和堆栈段。

相关内容