程序:程序是一个静态概念,通常指一段静态的代码,是为了完成特定的任务而采用某种语言实现的一组指令的集合。
这就是一段简单的程序:
public class Main {
public static void main(String[] args) {
System.out.println();
}
}
进程:进程是一个动态概念,进程是正在运行的程序,它有自身的产生、存在和消亡的过程。举个例子,电脑里运行中的QQ、微信,都是进程。
打开任务管理器可以发现,我的电脑上有很多应用进程。
进程是系统资源分配的单位,每个进程有属于自己的内存地址、内存空间。
线程:进程可以进一步细化为线程,一个进程可以包含多个线程,线程是线程是进程当中的⼀条执行流程。
线程是调度和执行的单位,这说明真正执行任务的是线程,每个线程拥有属于自己的栈和程序计数器。
同一个进程内的线程间共享相同的内存单元、内存地址,还可以共享代码段、数据段,它们从同一堆中分配对象,这意味着它们可以访问相同的变量和对象,这使得线程间的通信简便、高效。