Chinaunix首页 | 论坛 | 博客
  • 博客访问: 184072
  • 博文数量: 63
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 810
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-03 17:24
文章分类

全部博文(63)

文章存档

2011年(1)

2009年(25)

2008年(37)

我的朋友

分类: LINUX

2008-11-26 10:27:39

   应用程序是驻留在存储器里面的一段代码,如c语言编译生成的可执行文件。
进程是应用程序的一次执行,包括执行所需要的堆栈,寄存器,什么的资源。如在shell或者命令行里输入可执行文件+参数,操作系统就启动一个进程
线程:为了使进程能较快的执行完,将进程分为几个小段,创建线程的重要意义是在一个进程里的每个可执行的小段用一个线程来运行
   在占用资源上,进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.

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

阅读(932) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~