• 进程的两大概念


    进程的两大概念

    一、进程的并行与并发

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


    二、同步异步阻塞非阻塞

    • 阻塞与非阻塞

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

      • I/O

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

    • 同步和异步

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

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

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

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

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

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

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

  • 相关阅读:
    QueryRunner查询返回值为int的数据
    c3p0连接池获取数据库连接
    javascript-文件File转换成base64格式
    php 判断是否手机端还是pc端
    MySql -- 数据结构
    tp5--路由的使用方法(深入)
    tp5--路由的使用(初级)
    tp5--开发规范
    二维数组排序 按某个字段排序
    文件记录网页访问量
  • 原文地址:https://www.cnblogs.com/YGZICO/p/11997675.html
Copyright © 2020-2023  润新知