美文网首页
进程,线程,阻塞

进程,线程,阻塞

作者: kzc爱吃梨 | 来源:发表于2022-02-17 01:18 被阅读0次

    进程Process

    场景

    • notepad.exe是一个程序,不是进程
    • 双击notepad.exe时,操作系统会开启一个进程

    定义

    • 进程是程序的执行实例
    • 程序在CPU上执行时的活动叫做进程
    • 实际上并没有明确的定义,只有一些规则

    特点

    • 一个进程可以创建另一个进程(父进程与子进程)
    • 通过任务管理器可以看到进程

    了解CPU

    特点

    • 一个单核CPU,在一个时刻,只能做一件事情
    • 那么如何让用户同时看电影、听声音、写代码呢?
    • 答案是在不同进程中快速切换

    多程序并发执行

    • 指多个程序在宏观上并行,微观上串行
    • 每个进程会出现「执行-暂停-执行」的规律多个进程之前会出现抢资源(如打印机)的现象

    进程的两个状态

    进程的两个状态

    阻塞

    等待执行的进程中

    • 都是非运行态
    • 一些(A)在等待CPU资源
    • 另一些(B)在等待I/O完成(如文件读取)
    • 如果这个时候把CPU分配给B进程,B还是在等I/O我们把这个B叫做阻塞进程
    • 因此,分派程序只会把CPU分配给非阻塞进程

    进程的三个状态

    进程的三个状态

    线程Thread的引入

    分阶段

    • 在面向进程设计的系统中,进程是程序的基本执行实体
    • 在面向线程设计的系统中,进程本身不是基本运行单位,而是线程的容器

    引入原因

    • 进程是执行的基本实体,也是资源分配的基本实体
    • 导致进程的创建、切换、销毁太消耗CPU时间了
    • 于是引入线程,线程作为执行的基本实体
    • 而进程只作为资源分配的基本实体
    • 此处可以以设计师和工程师分开招聘举例

    线程Thread

    概念

    • CPU调度和执行的最小单元
    • 一个进程中至少有一个线程,可以有多个线程
    • 一个进程中的线程共享该进程的所有资源
    • 进程的第一个线程叫做初始化线程
    • 线程的调度可以由操作系统负责,也可以用户自己负责

    举例

    • 浏览器进程里面有渲染引擎、V8引擎、存储模块、网络模块、用户界面模块等
    • 每个模块都可以放在一个线程里

    相关文章

      网友评论

          本文标题:进程,线程,阻塞

          本文链接:https://www.haomeiwen.com/subject/qmdjlrtx.html