A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘奇 初级黑马   /  2012-7-26 19:51  /  1735 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘奇 于 2012-7-27 10:44 编辑

进程和线程的概念
进程:1.独立性:进程是系统中独立存在的实体,可以拥有自己的独立资源,有私有的地址空间
          2.动态性
          3.并发性:多个进程可以在单个处理器上并发执行,多个进程之间不会互相影响(注意是“并发”,并行只有在多核的                   情况下才会发生)
线程是轻量级进程,是进程的执行单元,每条进程相当于一条执行流。一个进程可以拥有多个线程,同时一个线程也必须有一个父进程,线程可以共享进程中的资源,但是不能拥有系统资源,只能有自己的堆栈和程序计数器以及自己的局部变量。同一个进程的多个线程可以并发执行。
差异:
     进程间不能共享内存,但是线程间共享内存却很容易实现。
     创建线程的代价要比创建进程的代价小得多。
        
问题:
既然进程可以有自己的独立地址空间,那线程可以吗?

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
晋城市系统中独立存在的尸体 。。看到这里,我已经彻底崩溃了。。。
回复 使用道具 举报
进程是一个资源的集合体,所以拥有地址空间,模块,内存
每个进程可以启动几个线程,线程是真正的执行单元,是比进程更小的能独立运行的基本单位.
线程自己基本上不拥有系统资源,但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.

线程能共享到 进程所拥有的全部资源,所以 完全没必要像进程一样拥有自己的独立地址空间.

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

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

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
进程是系统资源分配的单位。
线程是系统执行的单位。
其中资源就包括内存。
进程占用着独立的内存空间。而这些内存空间就是供线程使用的。
就相当于一个家庭必须占用一套房子
而家庭成员共享这座房子里的东西。
家庭相当于进程,家庭成员相当于线程
房子相当于内存
一个家庭至少有一个成员
也可以有多个成员
作为家庭成员,你只要在这座房子里
你可以想住哪就住哪,当然你必须有那个需求才行
但是你的家庭必须有一个独立的地址
家庭成员呢,却不必,因为你不是房子的分配单位,家庭才是
希望可以对你有所帮助。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马