操作系统_进程和线程的区别
进程和线程的区别
比较内容 | 进程 | 进程 |
---|---|---|
调度的基本单位 | 进程是能独立运行的基本单位,被调度时需要上下文切换。 | 线程是能独立运行的基本单位,线程切换时仅需保存和设置少量寄存器内容。 |
并发性 | 进程之间可以并发执行。 | 一个进程中的所有线程都能并发执行,不同进程中的线程也能并发执行。 |
拥有资源 | 进程可以拥有资源,并作为系统中拥有资源的一个基本单位。资源分配给进程,同一进程的所有线程共享该进程的所有资源。同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。 | 线程本身不拥有系统资源,而是仅有一点必不可少的、能保证独立运行的资源。线程还允许多个线程共享该进程所拥有的资源。每个线程拥有自己的栈段,栈段又叫运行时段,用来存放所有局部变量和临时变量。 |
独立性 | 每个进程都拥有一个独立的地址空间和其他资源,除了全局变量外,不允许其他进程的访问。独立性高。每个独立的进程有程序运行的入口、顺序执行序列和程序出口。 | 同一进程中的不同线程共享内存地址空间和资源。独立性低。线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 |
系统开销 | 在创建或撤消进程时,系统都要为之分配和回收进程控制块、分配或回收其他资源。开销大。 | 由于一个进程中的多个线程具有相同的地址空间,线程之间的同步和通信也比进程简单。开销小。 |
支持多处理机系统 | 单线程进程:只能运行在一个处理机上。 | 多线程进程:可以将一个进程的多个线程分配到多个处理机上,使它们并发执行。 |
根本区别 | 进程是操作系统资源分配的基本单位。 | 线程是处理器任务调度和执行的基本单位。 |
包含关系 | 一个进程可以有多个线程,但至少有一个线程。如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的。 | 线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。一个线程只能属于一个进程。线程是操作系统可识别的最小执行和调度单位。 |
影响关系 | 一个进程崩溃后,在保护模式下不会对其他进程产生影响。健壮。 | 一个线程崩溃整个进程都死掉。 |
作者:叶浩霞
日期:2020.12.01
本作品采用《CC 协议》,转载必须注明作者和本文链接