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

进程,线程,阻塞

作者: 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引擎、存储模块、网络模块、用户界面模块等
  • 每个模块都可以放在一个线程里

相关文章

  • 进程,线程,阻塞

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

  • 深入理解并发/并行,阻塞/非阻塞,同步/异步

    1. 阻塞,非阻塞 首先,阻塞这个词来自操作系统的线程/进程的状态模型中,如下图: 一个线程/进程经历的5个状态,...

  • 深入理解并发/并行,阻塞/非阻塞,同步/异步

    1. 阻塞,非阻塞 首先,阻塞这个词来自操作系统的线程/进程的状态模型中,如下图: 一个线程/进程经历的5个状态,...

  • 9.8动态语言层并发处理视频

    相关概念什么是进程、线程、协程什么是多进程、多线程同步阻塞模型异步非阻塞模型PHP并发编程实践 进程是一个“执行中...

  • 整理一些遇到的问题

    常见的IO模型 单线程阻塞 多线程阻塞 多进程阻塞 非阻塞轮询 事件驱动IO 信号驱动式IO 异步IO(指的是使用...

  • [OS] I/O模型

    背景 阻塞 阻塞这个词来自操作系统的线程/进程的状态模型中,如下图: 一个线程/进程经历的5个状态,创建,就绪,运...

  • python笔记3

    python 无线程池 ,有进程池 阻塞 意外着等待子进程结束 字典的无序性 : 进程,线程,协程 协程,又称微...

  • 并发编程(四):阻塞队列

    一、什么是阻塞队列 1.1 简介 阻塞队列(BlockingQueue)是用于进程间通信或同一进程内的线程间通信的...

  • 惊群效应理解

    惊群: 多个进程或者线程阻塞等待同一个事件,当事件到来,多线程或者多进程同时被唤醒,只有一个线程或进程获得资源。 ...

  • python24-多线程和多进程基础

    本篇主要讲的是多线程和多进程的一些基础知识,包括并发、并行、进程、线程相关概念以及线程的创建与调用、阻塞线程和守护...

网友评论

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

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