进程和线程的区别
1.调度的基本单位:(拥有资源的基本单位)进程是系统资源进行分配和调度的独立单位(竞争系统资源),线程是能够独立运行(调度和分派)的基本单位。
2.并发性:
进程的执行过程是线状的
,尽管中间会发生中断或暂停,但该进程所拥有的资源只为该线状执行过程服务。一旦发生进程上下文切换,这些资源都是要被保护起来的。这是进程宏观上的执行过程。而进程又可有单线程进程与多线程进程两种。我们知道,进程有 一个进程控制块 PCB ,相关程序段 和 该程序段对其进行操作的数据结构集 这三部分,单线程进程的执行过程在宏观上是线性的,微观上也只有单一的执行过程;而多线程进程在宏观上的执行过程同样为线性的,但微观上却可以有多个执行操作(线程),如不同代码片段以及相关的数据结构集。
3.拥有资源:进程是拥有资源的基本单位;线程本身不具有系统资源,而是仅有一点必不可少的,可以保证独立运行的资源。多个线程可以共享该进程所拥有的资源。
4.独立性:为了防止进程之间彼此干扰,每个进程拥有一个独立的地址空间和其他资源,除了共享全局变量外,不允许其他进程访问。但是同一进程中的多个线程,它们共享进程的内存空间和资源。
5.系统开销:创建和撤销以及切换进程的消耗都比线程高。
6多处理机系统:单线程进程只能运行在一个处理机上面,但是多线程进程的多个线程可以分派到不同处理机上面。