Android开发艺术探索之读书笔记二

进程跟线程的理解

进程(英语:process),是计算机中已运行程序的实例,是系统进行资源分配和调度(若不支持线程机制,进程的系统调度的单位。否则,线程是系统调度的单位)的独立单位。

为了更好的介绍进程这个概念,先从多道程序设计说起,多道程序设计技术是操作系统最早引入的技术,它的设计思想是允多个程序同时进入内存并运行,其目的是为了CPU的利用率,进而提高系统效率。多道程序设计技术允许多个程序同时进入内存并运行,在这样的并发环境下,如何描述、刻画这样执行的程序呢?因此引入了“进程”。

程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。若干进程有可能与同一个程序相关系,且每个进程皆可以同步(循序)或异步(平行)的方式独立运行。

进程特点:

进程是是正在运行程序的抽象。

有状态(新生、运行、等待、就绪、结束),切换耗时。

系统资源(如内存、文件)以进程为单位分配。

操作系统为每个进程分配了独立的地址空间

操作系统通过“调度”把控制权交给进程。

线程

线程(英语:thread)是操作系统能够进行运算调度的最小单位,线程是进程中的一个执行路径。

线程特点:

有标识符ID

有状态(产生、中断、非中断、结束)及状态转换,所以需要提供一些状态转换操作

不运行时需要保存上下文环境,所以需要程序计数器等寄存器

有自己的栈和栈指针

共享所在进程的地址空间和其它资源

进程与线程区别

定义方面:进程是程序在某个数据集合上的一次运行活动;线程是进程中的一个执行路径。(进程可以创建多个线程)

角色方面:在支持线程机制的系统中,进程是系统资源分配的单位,线程是CPU调度的单位。

资源共享方面:进程之间不能共享资源,而线程共享所在进程的地址空间和其它资源。同时线程还有自己的栈和栈指针,程序计数器等寄存器。

独立性方面:进程有自己独立的地址空间,而线程没有,线程必须依赖于进程而存在。

开销方面。进程切换的开销较大。线程相对较小。

重点

面试其实如果没把握,只需要回答:进程是系统资源分配的单位,线程是CPU调度的单位,进程可以创建多个线程

你可能感兴趣的:(Android开发艺术探索之读书笔记二)