基本上所有的操作系统(OS)都支持执行多个任务,通常来说,一个任务就是一个程序,一个程序就是一个进程,在一个进程运行时,内部可能包含多个内部执行流,每个顺序执行流就是一个线程。
进程
进程指正在运行中的程序,并且具有一定的独立性,是OS资源分配的单位,当程序进入内存运行时,即为进程。
特点:
- 独立性:进程是系统中独立存在的实体,拥有独立的资源,有独立的地址空间;
- 动态性:进程是动态的,进程中有时间概念,拥有自己的生命周期和不同的状态;
- 并发性:多个进程可以在单个处理器上并发执行,互不影响;
线程
线程是进程的组成部分,是OS资源调度的的单位,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程可以拥有自己的堆栈,程序计数器,局部变量,但不能拥有系统资源,它与父线程的其他线程共享所有资源。
特点:
- 轻型实体:线程的实体不拥有系统资源,只拥有一些自身相关的资源;
- 独立调度的基本单位:在多线程OS中,线程是能独立运行的基本单位,是资源调度的单位;
- 可并发执行:一个进程的多个线程可以并发执行,不同进程间的多个线程也可以并发执行;