程序、进程、线程的区别

程序:是为了完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。

进程:是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:一个进程有他自己的生命周期(产生、存在和消亡的过程)

  ——>程序是静态的,进程是动态的

  ——>进程作为资源分配的单位,系统在运行时会为每一个进程分配不同的内存区域

线程:进程进一步细化后就是线程,是一个程序内部的一条执行路径。

  ——>若一个进程在同一时间并行执行多个线程,就是支持多线程的

  ——>线程作为调度和执行的单位,每个线程都拥有独立的运行栈和程序计数器(pc),线程切换的开销小

  ——>一个进程中的多个线程共享相同的内存单元/内存地址空间,它们从同一堆中分配对象,可以访问相同的变量和对象,这就使得线程间的通信更加简便、高效(线程间的通信是在同一地址空间上进行的,所以不需要额外的通信机制,这就使得通信更简便而且信息传递的速度也更快)。但多个线程操作共享的系统资源可能就会带来安全隐患

  ——>线程的启动、中断、消亡,消耗的资源非常少。

原文地址:https://www.cnblogs.com/xing-29391/p/14072544.html