打印
[嵌入式linux]

如何区分进程和和线程的关系

[复制链接]
1338|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sunplusedu2012a|  楼主 | 2013-2-1 15:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    以下**摘自凌阳嵌入式linux培训讲师-浩哥的博客:如何区分进程和和线程的关系,在这里有详细的讲解:
  Differences in process and thread
  Definition定义
  -------------
  Process
  进程是应用程序的一次运行活动;
  从操作系统核心角度来说,进程是操作系统分配和调度系统内存资源、cpu时间片等资源的基本单位,为正在运行的应用程序提供
  运行环境。
  Thread
  线程是程序内部有并发性的顺序代码流。是cpu调度资源的最小单元。
  Units单位大小
  ------------
  Process
  进程是操作系统分配和调度系统内存资源、cpu时间片等资源的基本单位;一个进程至少包括一个线程。
  进程是操作系统资源管理的实体。
  Thread
  线程是cpu调度资源的最小单元。
  线程是进程的实体。
  Resource系统资源分配上
  -------------
  Process
  每个进程都有自己的内存地址空间。
  Thread
  线程没有自己独立的内存资源,它只有自己的执行堆栈和局部变量。但是在同属一个进程的多个线程中他们可以共享进程的内存
  资源。
  Running执行过程中
  -------------
  执行过程中,进程有内存单元的初始入口点,在存活阶段里拥有独立的地址空间。
  A process has the initial entrance of Memory Units and room of address.
  进程是应用程序的一次运行活动,独立地执行;所以某一个进程崩溃以后,在保护模式下不会影响其他的进程,
  健壮性好。
  A process is activity of application.
  父进程与子进程 的关系待研究深入中……
  每个已创建的进程都可以创建进程,创建进程的进程称为父进程,被创建的新进程为子进程,这样便形成一个进程树。父进程与子进程可并行执行;父进程等待子进程终止执行。父进程终止后,所有的子进程也都必须要终止。
  Thread
  而线程不能独立地执行,它必须依附在一个运行中的应用程序上。
  但是,同一个进程中的多个线程可以并发地执行,并发性高,系统在数据交换上花费的资源少,运行效率高。
  主线程与其他线程 的关系待研究深入中……
  每个进程里都会有一个主线程,由它创建其他线程。
  ======================================================
  Common ground 共同点
  --------------
  Process和Thread都有生命周期:
  create创建,ready就绪,running运行,waitSleepJoin阻塞,suspend挂起,stoped死亡
  新增补充(2011.5.07)
  一个地方,当一个程式开启以后,产生task,task先产生第一个进程并且执行第一个线程
  而后进程可以在产生子进程,相当于呼叫下一个activity或者service
  而单一进程里面可以有很多线程,这也就是multithread的观念,而一般我们在activty中,因为task的堆叠功能
  而process可以轻易的有callback的功能,但是在线程呢?
  所以更进阶的就要去学习如何包装线程,毕竟这在开发应用程式上面会有很大帮助
  虽然不至于走向multitask的开发,但是multithread应该会很容易碰到,尤其service,甚至网路处理就会碰到了
  而包装就要了解 thread handler message queue looper
  这个这两天我会找时间来好好的写一下
  希望大家喜欢

相关帖子

沙发
refee| | 2013-2-1 15:48 | 只看该作者
嗯 学习学习……

使用特权

评论回复
板凳
yinqiyu22133812| | 2013-2-1 21:55 | 只看该作者
嗯 学习学习……+1

使用特权

评论回复
地板
ymind| | 2013-2-2 09:28 | 只看该作者
楼主转述的概念都没问题,可对初学者来说,太抽象。
对中国人,归纳法比较好:比如区分轻量级进程(此概念有争议)和纯用户线程,可从 分析Linux POSIX thread library的实现从LinuxThread迁移到NPTL的原因和过程 入手;比较 fork一个进程的开销,和create一个内核线程的开销。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我很懒,什么也没有留下

49

主题

78

帖子

1

粉丝