首页 > 代码库 > 第72课 进程与线程的概念

第72课 进程与线程的概念

1. 程序和进程的概念

 

程序

进程

概念

程序是计算机存储系统中的数据文件

①源代码程序文本文件,描述程序行为和功能

②可执行程序二进制文件,直接加载并执行。

①广义概念:程序关于某个数据集合的一次运行活动

②狭义概念:程序被加载到内存中执行后得到进程

区别

程序是硬盘中静态的文件:存储系统中的一段二进制表示

进程是内存中动态的运行实体:数据段、代码段、PC指针等。

联系

一个程序可能对应多个进程。比如,一个程序多次运行,每次运行产生一个进程

一个进程可能包含多个程序。比如,一个程序依赖多个其它动态库。

注意

在当代操作系统中,资源分配的基本单位是进程;而CPU调度执行的基本单位是线程

2. 线程的概念

(1)进程内的一个执行单元

(2)操作系统中一个可调度的实体

(3)进程中相对独立的一个控制流序列

(4)执行时的现场数据和其他调度所需的信息。

3. 再论main函数

(1)C/C++程序被执行后从main函数开始运行。

(2)其运行过程:

技术分享 

(3)线程是进程使用CPU资源的基本单位。

4. 深入理解进程和线程

技术分享 

(1)进程中可以存在多个线程并行执行,共享进程资源

(2)线程是被调度的执行单元,而进程不是调度单元。

(3)线程不能脱离进程单独存在,只能依赖于进程运行。

(4)线程有生命期,有诞生和死亡。

(5)任意线程都可以创建其它新的线程。

5. 小结

(1)程序是物理存储空间中的数据文件

(2)进程程序运行后得到的执行实体

(3)线程是进程内部的具体执行单元

(4)一个进程内部可以有多个线程存在

(5)进程操作系统资源分配的基本单位

(6)线程操作系统调度执行的基本单位

第72课 进程与线程的概念