程序:指令集 静态概念
进程:操作系统 调度程序 动态概念
进程是程序的一次动态执行过程,占用特定的地址空间,每个进程都是独立的
线程
在进程中的多条执行路径 ,是进程中一个“单一的连续控制流程”,被称为轻量级的进程,一个进程可以拥有多个并行的线程,一个进程中的线程共享相同的内存单元,可以访问相同的变量和对象,线程间的通信是在同一地址空间进行的,所以不需要额外的通信机制
区别 | 进程 | 线程 |
---|---|---|
根本区别 | 作为资源分配的单位 | 调度和执行的单位 |
开销 | 每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销 | 线程可以看为轻量级的进程,同一类线程共享代码和数据空间,每一个线程拥有独立的运行栈和程序计数器,线程切换的开销相对较小 |
所处环境 | 在操作系统中能同时运行多个任务(程序) | 在同一程序中有多个顺序流同时执行 |
分配内存 | 系统在运行的时候会为每个进程分配不同的内存区域 | 除了CPU外,不会为线程分配内存,线程所使用的资源是它所属进程的资源,线程组只能共享资源 |
包含关系 | 没有线程的进程可以被看做是单线程的,如果进程有多个线程,那其执行过程为多条线共同完成 | 线程是进程的一部分 |