进程与线程

来源:互联网 发布:sql server简体中文版 编辑:程序博客网 时间:2024/06/05 09:30

进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。进程是资源分配的基本单位,也是调度运行的基本单位。

这里写图片描述
通过windows任务管理器可以看出,系统中运行exe程序就可以理解为一个“进程”,进程是受操作系统管理的最基本的单元。
线程可以理解为进程中独立运行的子任务。线程被人们认为是轻量级的进程,它是进程中单独运行的一路程序。换句话说,就是一个进程可以包含多个线程,并且至少有一个主线程,同时同一进程的线程共享该进程的代码和数据。于此同时,每一个线程又都有自己的堆栈,这些堆栈对于线程来说是私有的。

引入线程的优势:
1、便于调度
2、线程可以共享进程的数据和代码,从而比进程需要通过消息才能通信来得更加简单。启动和切换的速度也比进程快。
3、具有高并发性,可以启动多个线程执行同程序的不同部分。异步执行提高效率。
4、充分利用处理器的功能。让每一个处理器上运行不同线程,从而实现应用程序的并发性。

进程和线程的区别
1、一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有。
2、进程是资源分配的基本单位,线程是处理机调度的基本单位,所有的线程共享其所属进程的所有资源与代码。
3、线程执行过程之中很容易进行协作同步,而进程需要通过消息通信进行同步。
4、线程的划分尺度更小,并发性更高。
5、线程共享进程的数据的同时,有自己私有的的堆栈。
6、线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口。它必须组成进程才能被执行。

0 0
原创粉丝点击