进程和线程

转载 2018年04月16日 16:24:28

进程(process)是指在系统中正在运行的一个应用程序,是系统资源分配的基本单位,在内存中有其完备的数据空间和代码空间,拥有完整的虚拟空间地址。一个进程所拥有的数据和变量只属于它自己。

线程(thread)是进程内相对独立的可执行单元,所以也被称为轻量进程(lightweight processes);是操作系统进行任务调度的基本单元。它与父进程的其它线程共享该进程所拥有的全部代码空间和全局变量,但拥有独立的堆栈(即局部变量对于线程来说是私有的)。

进程和线程都具有就绪、阻塞和运行三种基本状态。

联系

 一个进程至少拥有一个线程——主线程,也可以拥有多个线程;一个线程必须有一个父进程。多个进程可以并发执行;一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。

区别

系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销

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

通信方式:进程间通信主要包括管道、系统IPC(包括消息队列,信号量,共享存储)、SOCKET,具体说明参考linux进程间通信方式。进程间通信其实是指分属于不同进程的线程之间的通讯,所以进程间的通信方法同样适用于线程间的通信。但对应归于同一进程的不同线程来说,使用全局变量进行通信效率会更高。

python线程进程、异步IO

-
  • 1970年01月01日 08:00

进程 线程 linux

  • 2010年09月07日 23:39
  • 405KB
  • 下载

线程和进程的区别.txt

  • 2009年08月15日 23:54
  • 3KB
  • 下载

linux unix下多线程与进程

  • 2011年04月08日 17:45
  • 87KB
  • 下载

进程和线程的区别、相同点

1、首先是定义 进程:是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。 线程:单个进程中执行中每...
  • qq_33573235
  • qq_33573235
  • 2017-08-02 17:33:24
  • 1253

操作系统PPT(关于线程进程的)

  • 2009年12月30日 13:01
  • 1.24MB
  • 下载

linux 下 进程和线程的区别(baidu 面试)

1、进程与线程进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。线程是进程的一个执行流,是CPU...
  • forrest2009
  • forrest2009
  • 2011-05-12 10:02:00
  • 44960

进程和线程的由来与区别

进程和线程的由来与区别之前写过进程和线程的区别,但是没写明白,今天再完善一下。 引言:要搞明白一个事物,首先要搞清楚它的由来。人们发明出来的很多东西,并不是凭空想象出来的,是因为需求! 正因为人们需...
  • whl_program
  • whl_program
  • 2017-04-17 23:11:22
  • 891

Java中进程与线程的区别

学习电脑和编程语言就会遇到进程和线程,初学者往往会在此陷入迷茫和纠结中。其实弄清这两个概念不是很难。从一定意义上讲,进程就是一个应用程序在处理机上的一次执行过程,它是一个动态的概念,而线程是进程中的一...
  • wu371894545
  • wu371894545
  • 2017-02-20 21:21:17
  • 12778

进程和线程的本质和区别

进程是什么? 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一...
  • zsl091125
  • zsl091125
  • 2016-09-14 17:34:00
  • 4995
收藏助手
不良信息举报
您举报文章:进程和线程
举报原因:
原因补充:

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