【线程和进程】Android线程和进程完全解析,及区别

来源:互联网 发布:如何学java程序员 编辑:程序博客网 时间:2024/06/02 01:09

Android是基于Linux的移动操作系统,但是和Linux本身还是有差别的面试过程中常常会问到相关线程和进程的问题,我们不妨来了解一哈。.

受限给一张大图构建一下总体的概念

这里写图片描述

由上图可知:

一、线程

1、定义

这里写图片描述


二、进程

1、定义

是一个具有独立功能的程序关于某个数据集合的一次运行活动


三、Android进程和线程的区别

  • 定义的区别(见上面)
  • 基本单位区别:
    1、线程是进程的一个实体,是CPU调度和分派的基本单位,是比进程更小的能独立运行的基本单位,基本上不拥有系统资源,故对他的调度所用资源小,能更高效提高系统内多个程序间并发执行的。
    2、进程是系统进行资源分配和调度的一个独立单位。可以申请和拥有系统资源,一个动态的概念,一个活动的实体,是一个执行中的程序
  • 进程间有不同的代码和数据空间,多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。
  • 进程间相互独立,同一进程的各线程间共享,某进程内的线程在其他进程不可见。
  • 进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
  • 线程上下文切换比进程上下文切换要快得多。