1. 程序(Program)
程序是一组指令的集合,它存储在磁盘上,是一个静态的实体。程序本身并不执行任何操作,它只是提供了一个执行的蓝图。例如,一个编译好的可执行文件(如Windows的.exe文件)就是一个程序。
2. 进程(Process)
进程是程序的一次执行实例,是操作系统进行资源分配和调度的基本单位。当程序被加载到内存中并开始执行时,它就变成了一个进程。进程拥有独立的内存空间、代码、数据和其他系统资源(如文件、I/O设备)。进程之间是相互独立的,一个进程的崩溃通常不会影响其他进程。当你双击电脑文本编辑器的 .exe 文件时,操作系统会为该程序创建一个进程。这个进程中包含了程序运行所需的全部资源,比如代码段、数据段以及堆栈等。
3. 线程(Thread)
线程是进程中的一个执行单元,是操作系统进行调度的最小单位。一个进程可以包含一个或多个线程,这些线程共享进程的资源,如内存和文件句柄。线程之间的切换比进程之间的切换要快得多,因为它们共享相同的地址空间。线程之间的通信和同步比进程之间的通信和同步要简单和高效。继续以文本编辑器为例,当它运行时,可能会有多个线程。例如,一个线程负责处理用户界面的交互,另一个线程可能负责自动保存文档的功能。
4、总结
程序是静态的代码和数据的集合,进程是程序的动态执行实例,而线程是进程中的更小的执行单元。
进程提供了资源隔离和保护,而线程提供了更细粒度的并发控制。
理解这些概念对于编写高效和健壮的并发程序至关重要。
原创 代码百草园