1、何为线程?
线程,可视为“轻量级进程”。它是基本CPU执行单元,也是程序执行流的最小单元。这一单元由线程ID、程序计数器、寄存器集合以及堆栈所组成。
在进程的架构中,线程作为实体存在,由系统独立进行调度和。它并不拥有系统的全部资源,仅拥有执行所必需的少量资源,但可与同一进程内的其他线程共享该进程的全部资源。
一个线程有能力创建和撤销另一个线程。在同一个进程中,多个线程可以同时执行。由于线程间的相互依赖关系,它们的运行中会出现间断性。基本而言,线程有就绪、阻塞、运行三种状态。
进程与线程之辨
2、进程与线程间有何异同?
调度方面
在传统操作系统中,进程是拥有资源及独立调度的基本单位,每次调度时都需要进行上下文切换,这带来的开销较大。
并发性能
引入线程的操作系统中,不仅进程间可以并发执行,同一进程内的多个线程亦可并行执行。甚至不同进程中的线程亦能并发执行。此举极大地提高了操作系统的并发性能,提升了系统资源利用率及系统吞吐量。
资源掌控
进程是系统中掌控资源的基础单位。而线程则不拥有系统资源,但可以访问其所属进程的资源。同一进程内的所有线程共享相同的地址空间,这一特性使得线程间的信息交互和同步变得简单容易。
独立性
每个进程拥有独立的地址空间及资源,其他进程仅能通过特定方式访问部分全局变量。
相对而言,一个进程内的线程对其他进程是不可见的,但它们可以共享该进程的地址空间及资源。
系统开销
创建或撤销一个进程时,系统需为其分配或回收PCB等资源,这带来的开销明显大于创建或撤销一个线程时的开销。
而线程的切换仅需保存和设置少量寄存器内容,开销甚小。由于同一进程内的多个线程共享地址空间,它们的同步和通信尤为容易实现,有时甚至无需操作系统的直接干预。
多处理机系统支持
单线程进程只能在一个处理器上运行,不论处理器的数量有多少。
相反,多线程进程可将自身中的多个线程分配至多个处理器上执行,这极大地提升了多核处理器的利用效率。
进程与线程在系统运行中各自扮演着不可或缺的角色。