程序
程序是指,一组指示计算机执行动作或做出判断的指令,通常使用某种程序设计语言编写,运行再操作系统上。
程序是静态的
进程
进程是程序的一次执行过程,进程是动态的。
进程是一个程序及其数据在处理及上顺序执行时所发生的活动
进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
线程
引入进程的目的是更好地使多通道程序并发执行,提高资源的利用率和系统的吞吐量,而引入线程的目的则是
减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能。
线程最直接的理解就是“轻量级进程”,它是一个基本的CPU执行单元,也是程序执行流的最小单元。
引入线程后,进程的内涵发生了改变,进程只作为除CPU外的系统资源的分配单元,而线程则作为处理机的分配单元。
并发
所谓的并发指的是同时拥有两个或多个线程,如果程序在单核处理器上运行,多个线程将交替地换入或者换出内存。
这些进程是同时存在的,每个进程都处于执行过程中的某个状态,如果运行在多核处理器上,此时,程序中每个处理器
可以执行一个进程,因此多个进程可以同时执行。
并行
并行相对于并发的区别是:
并发指的是两个或多个事件在同一时间段发生
并行指的是两个或多个事件在同一时间点发生
在操作系统中,多个程序运行时,并发性指的是在一段时间内宏观上有多个程序在同时运行
(例如边玩游戏边听歌),但是在单核系统中,每一时刻却仅有一个程序执行,
这就是CPU中时间片的概念,可以想象CPU把运行1秒钟分成10份,计算机中所有程序
运行中交替执行在每一个0.1秒之中。而并行则要求在同一时刻一起执行。