线程和进程的区别

it2023-05-10  86

线程和进程的区别

1.调度

在传统的操作系统中,拥有资源的基本单位和独立调度、分配的基本单位都是进程。而在引入线程的操作 系统中,则把线程作为调度和分配的基本单位,而把进程作为拥有资源的独立单位,是传统进程的两个属 性分开,线程便能轻装运行,从而可显著提高系统的并发程度。在同一进程中,线程的切换不会造成进程 的切换,而从一个进程中的线程切换到另一个进程中的线程是,会造成进程的切换。

2.并发性

在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程的多个线程之间亦可并发执行, 因而是操作系统具有更好的并发性,从而能更有效地使用系统资源和提高系统吞吐量。

3.拥有资源

不论是传统的操作系统,还是设有线程的操作系统,进程都是一个拥有资源的基本单位,它可以拥有自己 的资源。一般地说,线程自己不拥有资源(只有一些必不可少的资源),但是它可以访问隶属进程的源。

4.系统开销

由于在创建或撤销进程时,系统都要为之分配或回收资源。因此,操作系统所付出的开销将显著的大于在 创建或撤销线程时的开销。类似地,在进行进程切换时,涉及到当前进程整个CPU环境的保存以及新被调 度运行的进程的CPU环境的设置。而线程切换只需保存和设置少量寄存器的内容,并不涉及存储器管理方 面的操作。可见,进程切换的开销也远大于线程切换的开销。此外,由于同一进程中的多个线程具有相同 的地址空间,致使它们之间的同步和通信的实现也变得比较容易。在有的操作系统中,线程的切换、同步 和通信都无需操作系统内核的干预
最新回复(0)