什么是进程

计算机的组成

  • 最核心:cpu+内存
  • 图解

image.png

从程序的执行过程开始(以exe为例)

  • 操作系统可执行的文件
  • 双击===>os找到exe文件===>相关信息load到内存中(可以多次load同一文件资源)===>内存中的每一份都称为一个进程
  • os把程序放进内存之后变成进程之后,还会分配运行时所需要的相关资源:内存、文件描述符、io端口等……
  • 进程是资源分配的基本单位

什么是线程

通俗角度理解

  • 一个程序中的不同执行路径就叫一个线程
  • 当程序中只有一条路径的时候就是单线程(即便有if、while、……但不管怎样都只有一条路径)
    • 也被称为主线程(main)
    • 图解

image.png

  • 启动一个程序之后在中间会产生分支,同时不同的分支在同时运行(同一时间段都在运行)
    • 图解

image.png

专业角度

  • 回顾计算机组成的图
  • 程序转入内存之后,真正执行是以线程为单位来执行的

    • os会找到主线程给cpu去执行
    • 主线程开启了其他线程再进行线程之间的切换(cpu调度的基本单位
    • a执行一会,b再执行一会

      两个基本单位

  • 一个进程中可能包含多个线程

  • 线程在进程内部,是一个动态的概念,多个线程共享同一个进程中的所有资源
  • 共享资源===>线程的同步和互斥(共享产生麻烦)
  • 资源分配的基本单位:进程
  • 调度执行的基本单位:线程

什么是纤程/协程

  • 透彻理解go语言的第一二节课

    什么是程序

  • 可执行文件(QQ.exe)