zoukankan      html  css  js  c++  java
  • 进程的两大概念

    进程的两大概念

    一、进程的并行与并发

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


    二、同步异步阻塞非阻塞

    • 阻塞与非阻塞

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

      • I/O

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

    • 同步和异步

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

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

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

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

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

    • 阻塞与非阻塞:进程的状态

    • 异步非阻塞:CPU的利用率最大化

  • 相关阅读:
    TTFB
    区分数组与对象
    单点登录使用163邮箱
    从其它系统登录到SharePoint 2010系统的单点登录
    js 弹出对话框3种方式
    PowerShell编辑
    修改SharePoint页面上的控件数量的限制
    在SharePoint 2010页面中嵌入SWF文件
    修改SharePoint列表项显示“新”图标的天数
    JSP页面显示乱码
  • 原文地址:https://www.cnblogs.com/YGZICO/p/11997675.html
Copyright © 2011-2022 走看看