提到进程线程就不得不把他们的父老乡亲都拉出来问候一下。
首先是程序(计算机程序)
百度百科中定义程序为一组计算机能识别和执行的指令,运行于计算机上,满足人们某种需求的信息化工具。
通俗点讲程序就是可以让CPU完成指定任务的指令序列,而作为一个程序员程序可以简单的将其看做使用编程语言实现得到的数据结构和算法有机结合。
即程序 = 数据结构 + 算法
为了方便区分,我将程序理解为一个静态的概念,不管计算机运行与否,程序就在那里不增不减。没有启动的时候程序就是和数据类似的储存在计算机中的一串串01。
在这个定义中程序只包含了数据结构和算法,为了让程序运行,一些基本的数据会在代码中直接设定好,而实质上有一些特定的应用场景下还需要额外的数据程序才能够跑起来(比较典型的例子就是机器学习算法训练),为了方便管理操作系统的管理这样就引入了一个关于计算机中程序运行的概念进程
百度百科中对进程的定义是计算机中一个具有独立功能的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
进程是一个动态的概念。在操作系统里面,进程就是一个分配了数据设备等资源可以执行的程序体,也即
进程 = 程序 + 数据 + 进程控制块(PCB)
借用一下相亲的场景,程序可以相当于适龄青年,但平时由于缺少房子车子和票子(数据)只能保持冷静,当他(她)挣够了米&#