程序
定义:指令和数据的有序集合。是静态的
进程
定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。
通俗理解:1)执行中的程序。是动态的。程序只有在处理器执行该程序时,才能成为一个实体,此时称为进程。
2) 进程和线程都是一个时间段的描述,是CPU工作时间段的描述。操作系统(CPU)轮流让各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再切换到任务3,执行0.01秒……这样反复执行下去。表面上看,每个任务都是交替执行的,但是,由于CPU的执行速度实在是太快了,我们感觉就像所有任务都在同时执行一样。真正的并行执行多任务只能在多核CPU上实现。
进程的三个状态:就绪,阻塞,运行。(网上找的图)
就绪状态:获取除了cpu外的所有资源,只要处理器分配资源就可以马上执行。排队等待cpu
运行状态:获得cpu资源,程序开始执行。
阻塞态,当程序条件不够时候,需要等待条件满足时候才能执行,如等待i/o操作
线程
一个进程包含多个线程,线程可以利用进程所拥有的资源。进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位,由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统多个程序间并发执行的程度。同一进程中的多个线程具有相同的地址空间,所以它们间的同步和通信也易于实现。
参考:https://www.cnblogs.com/fuchongjundream/p/3829508.html
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319272686365ec7ceaeca33428c914edf8f70cca383000
网友评论