程序(Program):程序的为了让计算机执行某些操作或解决某个问题而编写一系列有序的指令集合。软件的目的:提高人们的工作效率,简化工作流程。动态概念。
进程(Process):进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 动态概念。
进程的特点:
结构性:由程序块CODE、数据块DATA、控制块CPU 组成。
共享性:同一程序运行在不同的数据集上时构成不同的进程。即多个进程可以共享一个程序。(如一台电脑同时登陆多个QQ)
动态性:进程是程序在数据集合上的一次执行过程,是动态概念。它有生命周期,由创建、执行、消亡、。
独立性:每个进程都以各自独立的速度在CPU上执行。
并发性:进程的并发性能够提高资源的利用率和系统的效率。
制约性:并发进程之间存在制约关系,也需要相互等待或互通消息,保证程序执行的可再现性和计算结果的唯一性。
进程的状态:就绪态ready、运行态running、阻塞blocked
进程的缺点:占用较多的系统资源,浪费内存。
线程(Thread):是操作系统进程中能够独立执行的实体(控制流),是处理器调度和分派的基本单位。 可以看成是进程内的多条执行路径。
进程的特点:并发性、共享性、动态性、结构性
线程是轻量级的进程一个进程可以并行多个线程进程中的线程共享内存线程间通讯在共享内存中的地址空间上执行,不需要额外的通讯机制,故速度更快。线程的状态:
graph LR A[新建态] B[就绪态] C[运行态] D[等待态-阻塞] E[终止态] A-->B B-->|选中|C C-->|落选|B B-->|出现等待事件|D D-->|等待事件结束|B C-->E 区别进程线程本质区别程序是计算机分配资源单位线程是进程中CPU调度和执行的单位开销进程有独立的计算机资源,进程间切换会有较大的开销线程可以当做轻量级进程,线程间资源共享,切换开销小内存分配计算机会给进程分配独立的内存资源线程使用所在进程的资源关系内有线程的进程可以当做单线程;一个进程可以有多个线程线程是进程的一部分,线程可以当做一个轻量级的进程