进程和线程关系及区别

转载 2015年07月09日 10:02:57

1.定义

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.


2.关系

一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.

相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。


3.区别

进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

1) 简而言之,一个程序至少有一个进程,一个进程至少有一个线程.

2) 线程的划分尺度小于进程,使得多线程程序的并发性高。

3) 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

4) 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

5) 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

4.优缺点

线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。


进程和线程关系及区别

1.定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立...
  • yaosiming2011
  • yaosiming2011
  • 2015年03月15日 21:06
  • 225667

java 进程和线程的区别与联系

程序:一段静态的代码,一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体,是应用软件执行的蓝本。    进程:是程序的一次动态执行,它对应着从代码加载,执行至执行完毕的一个完整的...
  • hp_yangpeng
  • hp_yangpeng
  • 2016年12月27日 21:12
  • 499

Android进程与线程区别

进程,常被定义为程序的执行,可以把一个进程看成一个独立的程序,在内存中有其完备的数据空间和代码空间。一个进程所拥有的数据和变量只属于他自己。          线程,某一进程中一路单独运行的程序...
  • u014297278
  • u014297278
  • 2015年07月05日 12:04
  • 1266

线程和 进程(包括锁)

程序 线程 和程序 程序: 完成特定功能的一系列有序指令集合 可执行文件 代码段+数据段 进程:程序的一次动态执行过程 代码段+数据段+堆栈段+PCB 两者比较 进程 程序 动态的 ...
  • youbingchen
  • youbingchen
  • 2016年06月12日 18:13
  • 695

Android中的线程与进程之间的关系简单解释

一、Android中的进程 当一个程序第一次启动的时候,Android会启动一个LINUX进程和一个主线程。默认的情况下,所有该程序的组件都将在该进程和线程中运行。 同时,Android会为每个...
  • u011895534
  • u011895534
  • 2015年07月14日 09:49
  • 1792

进程和线程的定义、区别与联系

一、进程 进程:指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。     注意,进程一般有三个状态:就绪状态、执行状态和等待状态【...
  • yanxiaolx
  • yanxiaolx
  • 2016年06月26日 16:52
  • 15330

进程和线程的概念、区别与联系

进程概念   进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放...
  • u010624033
  • u010624033
  • 2014年11月13日 16:03
  • 2047

Linux中线程和进程的区别

1.定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位 线程是进程的一个实体,行的基本单位.线程自己基本上不拥有系统资源,只拥有一点...
  • qq_21792169
  • qq_21792169
  • 2015年12月30日 20:55
  • 15587

程序、任务、进程和线程的联系与区别

概念:           程序(program)只是一组指令的有序集合。         任务(task)是最抽象的,是一个一般性的术语,指由软件完成的一个活动。一个任务既可以是一个进程...
  • xiaohouye
  • xiaohouye
  • 2016年07月01日 16:14
  • 2232

Android进程和线程的区别

恩恩,今天参加阿里的面试,被问到Android中进程和线程的区别,着实把我伤脑了,表示平时开发的时候只知道线程,并没有去仔细关注过进程,所以下来特地去查了以下资料,先说说线程: (1)在Androi...
  • qq_17475155
  • qq_17475155
  • 2016年03月15日 20:02
  • 5035
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:进程和线程关系及区别
举报原因:
原因补充:

(最多只允许输入30个字)