zoukankan      html  css  js  c++  java
  • 探讨进程、线程、协程的区别

    它们都是因程序的并发执行程序而产生

    一、进程

    ①、进程是资源分配的基本单位,程序运行时系统就会创建一个进程,例如打开qq应用就创建一个进程。

    ②、操作系统会为它分配专门的进程控制块

    ③、三种状态:就绪状态、执行状态、阻塞状态

    二、线程

    ①、线程是程序执行时的最小单位,一个进程可以由很多个线程组成,但至少包含一个主线程,例如qq里有多个功能则多个线程

    三、协程

    ①、协程是一种用户态的轻量级线程它是线程更小的执行单元,它的调度完全由用户控制

    四、进程与线程的区别

    ①、进程开销更大:进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多。

    ②、进程共享数据更复杂:同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式进行

    ③、进程健壮性更好:多线程程序只要有一个线程死掉,整个进程也死掉,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间,线程之间没有单独的地址空间。

  • 相关阅读:
    iSeries存储过程笔记
    最近做得的网站
    两个iSeries存储过程的示例
    索引的怪异问题
    Saas的概念感触
    asp.net 2.0的TextBox遭遇ReadOnly=True时ViewState不回传的问题
    网上看到的一句诗
    DB2/400到Oracle的迁移
    如何往自己的网站增加Asp.net Ajax
    default关键字作用
  • 原文地址:https://www.cnblogs.com/legendheng/p/10068448.html
Copyright © 2011-2022 走看看