程序
程序是存储在磁盘上, 包含可执行机器指令和数据的静态实体。 即进程或者任务是处于活动状态的计算机程序。
进程
进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例,即运行中的程序。
一个运行着的程序,可能有多个进程。进程在操作系统中执行特定的任务。
程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。
线程
概念
- 线程就是程序的执行路线,即进程内部的控制序列,或者说是进程的子任务。
- 线程,轻量级,不拥有自己独立的内存资源,共享进程的代码区、数据区、堆区(注意没有栈区)、环境变量和命令行参数、文件描述符、信号处理函数、当前目录、用户ID和组ID等资源。
- 线程拥有自己独立的栈,因此也有自己独立的局部变量。
- 一个进程可以同时拥有多个线程,即同时被系统调度的多条执行路线,但至少要有一个主线程。
特点
- 线程是进程的一个实体,可作为系统独立调度和分派的基本单位。
- 线程有不同的状态,系统提供了多种线程控制原语,如创建线程、销毁线程等等。
- 线程不拥有自己的资源,只拥有从属于进程的全部资源,所有的资源分配都是面向进程的。
- 一个进程中可以有多个线程并发地运行。它们可以执行相同的代码,也可以执行不同的代码。
- 同一个进程的多个线程都在同一个地址空间内活动,因此