4.2.7 线程

2025-06-02 11:46:01 更新

(一)传统进程基本属性

1)可拥有资源的独立单位;

2)可独立调度和分配的基本单位。

(二)引入线程的原因

进程在创建、撤销和切换中,时空开销较大,因此进程数不宜设置过多,进程切换频率不宜太高,限制了并发程度的提高。

(三)引入线程的结果

将传统进程两个基本属性分开,线程作为调度和分配的基本单位,进程作为独立分配资源的单位。用户可以通过创建线程来完成任务,以减少程序并发执行时付出的时空开销。

举例:在文件服务进程中可设置多个服务线程,显著提高服务质量及系统吞吐量。

(四)线程特点

1)线程是进程中的一个实体,是被系统独立分配和调度的基本单位。

2)线程基本不拥有资源,只拥有一点运行中必不可少的资源(如程序计数器、一组寄存器和栈),可与同属一个进程的其他线程共享进程所拥有的全部资源。

3)线程也具有就绪、运行和阻塞3种基本状态。

4)由于线程具有许多传统进程所具有的特性,故称为“轻型进程(Light-Weight Process) ;传统进程称为“重型进程(Heavy-Weight Process) ”。

5)线程可创建另一个线程,同一个进程中的多个线程可并发执行。

(五)线程分类


分类

说明

备注

1

用户级线程(User-Level Threads)

不依赖于内核,创建、撤销和切换都不利用系统调用来实现。

某些系统同时实现了两种类型的线程


2

内核支持线程(Kernel-Supported Threads)

依赖于内核,创建、撤销和切换都利用系统调用来实现。

(六)进程和线程本质差异

进程在切换时,总是依赖于内核中的进程调度。