浅谈进程和线程的区别

进程和线程是操作系统中的概念,也是平时被面试时问道的最多的问题,因此,我想谈谈我对2个概念的一些自己的看法。

首先,说一下他们2个定义:

进程:具有一定独立功能的程序关于一个数据集合的一次运行活动。

线程:又叫轻进程,是进程内部的一个相对独立的执行流。

从定义上可以看出,进程的范围更大些,它包括线程,一个进程至少有一个线程,也可以有多个线程,一般认为,进程是资源的分配单位,线程是cpu调度的单位。

进程有自己的独立的内存单元,而线程则是多个线程共享内存。这样决定了他们各自的优缺点:进程由于有自己的独立的内存空间,所以一个进程的崩溃不会对其他进程产生大的影响,但是进程占有较大的资源,所以开销大。线程相对来讲,上下文切换速度快,系统开销小,而且容易互相通信。

说一下unix系统下进程的创建和撤销的函数。

pid = fork();   exit(status);

进程从操作系统的角度看可以分为系统进程和用户进程。系统进程有自己的独立内存空间,而用户进程是不能使用这段内存空间的。进程的特性:1并发性2动态性3独立性4交互性5异步性6结构性。

线程有自己的堆栈和局部变量,这样一个进程中的共享地址空间的线程就能够区分开,线程更适合并发执行,有利于信息的传递。

posted @ 2012-09-12 19:39  梦回丶故里  阅读(91)  评论(0编辑  收藏  举报