进程与线程的定义以及对多线程、多进程、并发和并行的理解

1、定义浏览器

进程:指在系统中能独立运行并做为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。多线程

线程:线程是进程中的一个实体,做为系统调度和分派的基本单位。Linux下的线程看做轻量级进程。并发

图解定义:编辑器

进程的三态模型:性能

(1)运行:当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程的数目小于等于处理器的数目,对于单处理机系统,处于运行状态的进程只有一个。在没有其余进程能够执行时(如全部进程都在阻塞状态),一般会自动执行系统的空闲进程。
(2)就绪:当一个进程得到了除处理机之外的一切所需资源,一旦获得处理机便可运行,则称此进程处于就绪状态。就绪进程能够按多个优先级来划分队列。例如,当一个进程因为时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操做完成而进入就绪状态时,排入高优先级队列。
(3)阻塞:也称为等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时中止运行,这时即便把处理机分配给进程也没法运行,故称该进程处于阻塞状态。操作系统

进程的五态模型:线程

(4)新建态:对应于进程刚刚被建立时没有被提交的状态,并等待系统完成建立进程的全部必要信息。 进程正在建立过程当中,还不能运行。操做系统在建立状态要进行的工做包括分配和创建进程控制块表项、创建资源表格(如打开文件表)并分配资源、加载程序并创建地址空间表等。建立进程时分为两个阶段,第一个阶段为一个新进程建立必要的管理信息,第二个阶段让该进程进入就绪状态。因为有了新建态,操做系统每每能够根据系统的性能和主存容量的限制推迟新建态进程的提交。
(5)终止态:进程已结束运行,回收除进程控制块以外的其余资源,并让其余进程从进程控制块中收集有关信息(如记账和将退出代码传递给父进程)。相似的,进程的终止也可分为两个阶段,第一个阶段等待操做系统进行善后处理,第二个阶段释放主存。 队列

2、抽象理解进程

线程:若是把线程比喻为一条线,那么每句代码就好像一个点,线程的工做就是从开始的点走到结束的点。事件

多线程:就好像是有多条线,多条线"同时走"(宏观上),有的先开始,有的后开始,有的先结束,有的后结束。

进程:能够看作是由一条线或者更多条线组成的平面图形,全部的线程都有一个本身的进程,也可能多个线程拥有同一个进程。

多进程:由多个平面图形组成的立体图形

注:单CPU时"同时走"按照操做系统理论严格来讲,多线程并非多个线程一块儿运行的,只是运行线程的切换极快,几乎能够当作是并行运行,也能够说同时运行,但实际上并非同时的。多核或者多CPU是可能达到"同时走"

3、事例说明

多线程:迅雷下载的任务可以多个一块儿下载,而不是一个下载完成后才开始下载第二个,或者说在浏览器中能一边听音乐一边浏览网页

多进程:同时执行多个程序,如同时运行Word编辑器,QQ等程序

4、并发,并行

并行:当有多个CPU或者是多核CPU时才有可能实现并行,并行就是多个线程或者多个进程同时运行

并发:单个CPU(也能够多个CPU)将多个线程中的每一个线程(多个进程中的每一个进程)按时间分为一个一个的时间片,每个时刻只执行某个线程(进程)的时间片,时间片过时后转而执行下一个线程(进程)的时间片

注:并发宏观上看起来像是并行可是微观上并不能作到并行

相关文章
相关标签/搜索