码迷,mamicode.com
首页 > 编程语言 > 详细

进程与线程的区别

时间:2018-10-31 13:57:53      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:切换   contain   出现   多个   地址   运算   寄存器和栈   复杂   多线程   

  • 进程

    执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。

  • 线程

    单个进程中执行中每个任务就是一个线程。线程是进程中执行运算的最小单位。

  • 一个线程只能属于一个进程,但是一个进程可以拥有多个线程。多线程处理就是允许一个进程中在同一时刻执行多个任务。
  • 进程让操作系统的并发性成为了可能,而线程让进程的内部并发成为了可能。一个进程包含多个线程,但是这些线程共享进程占有的内存地址空间和资源。进程是操作系统进行资源分配的基本单位(进程之间互不干扰),而线程是操作系统进行调度的基本单位(线程间互相切换)。
  • 进程的三种状态:

    运行 就绪 等待 三种状态

  • 进程线程的区别:
    一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。
  • 最大的区别是:是否单独占有内存地址空间
    (共享,同步,可靠性,开销)

    1.进程单独占有一定的内存地址空间,所以进程间存在内存隔离,数据时分开的,数据共享复杂但是同步简单,各个进程之间互不干扰;而线程共享所属进程占有的内存地址空间和资源,数据共享简单,但是同步复杂。
    2.进程单独占有一定的内存地址空间,一个进程出现问题不会影响其他进程,不影响主程序的稳定性,可靠性高;一个线程崩溃可能影响整个程序的稳定性,可靠性较低。
    3.进程单独占有一定的内存地址空间,进程的创建和销毁不仅需要保存寄存器和栈信息,还需要资源的分配回收以及页调度,开销较大;线程只需要保存寄存器和栈信息,开销较小。
    注意:进程是操作系统进行资源分配的基本单位(进程之间互不干扰),而线程是操作系统进行调度的基本单位(线程间互相切换)。

    进程与线程的区别

    标签:切换   contain   出现   多个   地址   运算   寄存器和栈   复杂   多线程   

    原文地址:http://blog.51cto.com/13754781/2311071

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!