yifangzhuhou

导航

进程与线程的区别

资源分配

在操作系统中,进程是拥有系统资源的基本单位,而线程自己不能拥有资源(也有一些必不可少的资源),但是线程可以访问所在进程的代码段,数据段以及其他系统资源(打开文件表,I/O设备等),并且这个进程内的所有线程可以共享这些资源。

调度

在引入线程概念的操作系统中,线程是cpu调度和分派的基本单位,进程仅作为资源拥有的基本单位。进程内的线程切换不会引起进程的切换,避免了昂贵的系统调用,但是从一个进程中的线程切换到另个进程中的线程还是会引起进程切换。

系统开销

在创建和销毁进程时,系统都需要为其分配和回收资源,所以进程的创建与销毁所需系统开销明显高于线程的创建销毁。同样地,进程间切换时系统需要保存当前进程的状态并恢复另一个进程的状态,而线程切换只涉及到保存设置少量的寄存器值,并不涉及存储器管理方面的操作,可见进程切换的开销要远大于线程切换。此外,同一进程中的多个线程可以共享该进程的地址空间,这样线程间的同步与通信的实现也变得容易。

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

支持多处理机系统
在多处理机系统中,对于传统的进程,即单线程进程,不管有多少处理机,该进程只能运行在一个处理机上。但对于多线程进程,就可以将一个进程中的多个线程分配到多个处理机上,使它们并行执行,这无疑将加速进程的完成。因此,现代处理机OS都无一例外地引入了多线程。

参考链接

http://blog.csdn.net/yanxiaolx/article/details/51763372

 

posted on 2017-05-03 15:23  yifangzhuhou  阅读(138)  评论(0)    收藏  举报