了解进程与线程的区别
1 线程的引入
引入进程的目的是为了使多个程序并发执行,以改善资源利用率、提高系统吞吐量。
引入线程则是为了减少程序并发执行时的所付出的时空开销。
2 进程的两个基本属性
进程是一个拥有资源的基本单位。进程是一个独立调度的基本单位。
进程作为一个资源拥有者,在创建、撤消、切换中,系统必须为之付出较大时空开销。所以系统中进程的数量不宜过多,进程切换的频率不宜过高,但这也就限制了并发程度的进一步提高。
3 线程描述
在引入线程的OS中,线程是进程中的一条执行路径,是被系统独立调度和分派的基本单位。
线程基本不拥有系统资源,只拥有少量必不可少的资源:程序计数器、一组寄存器
线程可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行,线程之间是无保护。
4 线程与进程的比较
在引入线程的OS中,每一进程都拥有多个线程,至少一个。
线程具有进程的许多特征,故又称轻型进程,传统进程称重型进程。
1.调度
在引入线程的系统中,线程是 CPU 调度的基本单位,而进程是 CPU 分配资源的基本单位。
在同一个进程内线程切换不会产生进程切换,由一个进程内的线程切换到另一个进程内的线程时,将会引起进程切换。
2.并发性
在引入线程的系统中,进程之间可并发,同一进程内的各线程之间也能并发执行。因而系统具有更好的并发性。
3.拥有资源
即一个进程的所有资源可供进程内的所有线程共享。进程在执行过程中拥有独立的内存单元,而多个线程共享内存。
4.系统开销
进程的创建和撤消的开销要远大于线程创建和撤消的开销。
同一进程内的各线程由于它们拥有相同的地址空间,它们之间的同步和通信的实现也变得比较容易。
5.执行过程
每个独立的进程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立运行,必须依存于应用程序中,有应用程序提供多个线程的控制。
- 本文作者: étoile
- 版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!