进程的两大概念

Posted ygzico

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程的两大概念相关的知识,希望对你有一定的参考价值。

进程的两大概念

一、进程的并行与并发

  • 并行:是指两者同时执行,比如赛跑,两个人都在不停的往前跑
  • 并发:是指资源有限的情况下,两者交替轮流使用资源,比如一段路同时只能过一个人,A走一段后,让给B,B用完继续给A,交替使用,目的是提高效率
  • 区别
    • 并行是同时运行,只有具备多个CPU才能实现并行
    • 并发是伪并行,看起来是同时运行,单个CPU+多道技术就可以实现并发

技术图片


二、同步异步阻塞非阻塞

  • 阻塞与非阻塞

    • 阻塞(等待),凡是遇到I/O都会阻塞

    • I/O

      input()
      output()
      time.sleep()
      文件的读写
      数据的传输
    • 非阻塞(不等待),除了I/O都是非阻塞

  • 同步和异步

    同步和异步值的是"提交任务的方式"

    • 同步:一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列。要么成功都成功,失败都失败,两个任务的状态可以保持一致
      • 比如:若有两个任务需要提交,在提交第一个任务时,必须等待该任务执行结束后,才能继续提交并执行第二个任务
    • 异步:不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作,依赖的任务也立即执行,只要自己完成了整个任务就算完成了。至于被依赖的任务最重是否真正完成,依赖它的任务无法确定,所以它是不可靠的任务序列
      • 比如:若有两个任务需要提交,在提交第一个任务时,不需要原地等待,立即可以提交并执行第二个任务
  • 进程的三种状态

    技术图片

    • 就绪状态:当程序已分配到CPU以外的所有必要的资源,只要获得处理器便可以立即执行,这时的进程状态为就绪状态
    • 执行/运行状态:当进程已获得处理器,其程序正在处理上执行,此时的进程状态为执行状态
    • 阻塞状态:正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理器而处于阻塞状态。引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等

问:阻塞和同步是一样的吗?非阻塞和异步是一样的吗?

  • 同步与异步:提交任务的方式

  • 阻塞与非阻塞:进程的状态
  • 异步非阻塞:CPU的利用率最大化

以上是关于进程的两大概念的主要内容,如果未能解决你的问题,请参考以下文章

CDN+ CDN项目的两大核心--缓存与回源

云原生数字产业化:实现数字自由的两大关键词

你不得不知道的网红电商的两大思维误区!

python是怎么处理并发编程的(实用技巧)

Spring 的基本概念以及用xml配置IOC

Spring 的基本概念以及用xml配置IOC