• 进程理论--同步异步 / 阻塞非阻塞/ 并发与并行 /


    1.什么是进程

      进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。
      进程与程序的区别:程序仅仅只是一堆代码而已,而进程指的是程序的运行过程

    2.多道技术(基于单核背景下产生的)

    单道: 一条道走到黑   ---->  串行
                    - 比如: a,b需要使用cpu,a先使用,b等待a使用完毕后,b才能使用cpu。
    
                - 多道: (*******- 比如: a,b需要使用cpu,a先使用,b等待a,直到a进入“IO或执行时间过长”
                        a会(切换 + 保存状态),然后b可以使用cpu,待b执行遇到 “IO或执行时间过长”
                        再将cpu执行权限交给a,直到两个程序结束。
    
                    - 空间上的复用(*******):
                        多个程序使用一个CPU。
    
                    - 时间上的复用(*******):
                        切换 + 保存状态
    
                        1) 当执行程序遇到IO时,操作系统会将CPU的执行权限剥夺。
                            优点:
                                - CPU的执行效率提高
    
                        2) 当执行程序执行时间过长时,操作系统会将CPU的执行权限剥夺。
                            缺点:
                                - 程序的执行效率低

    3.并发与并行

    - 并发与并行:(*******- 并发:
                        在单核(一个cpu)情况下,当执行两个a,b程序时,a先执行,当a遇到IO时,b开始争抢cpu的执行权限,再让b执行,他们看起像同时运行。
                    - 并行:
                        在多核(多个cpu)的情况下,当执行两个a,b程序时,a与b同时执行。他们是真正意义上的同时运行。
                      面试题: 在单核情况下能否实现并行?  不行
    
    

    4.同步异步

    同步与异步(*******):
                同步与异步 指的是 “提交任务的方式”。
    
                同步(串行):
                    两个a,b程序都要提交并执行,假如a先提交执行,b必须等a执行完毕后,才能提交任务。
    
                异步(并发):
                    两个a,b程序都要提交并执行,假如a先提交并执行,b无需等a执行完毕,就可以直接提交任务。

    5.阻塞与非阻塞

    阻塞与非阻塞(*******):
                - 阻塞(等待):
                    - 凡是遇到IO都会阻塞。
                        - IO:
                            input()
                            output()
                            time.sleep(3)
                            文件的读写
                            数据的传输
    
                - 非阻塞 (不等待) :
                    - 除了IO都是非阻塞 (比如: 从1+1开始计算到100万)

    6.进程的三种状态

    5) 进程的三种状态(*******):
                - 就绪态:
                    - 同步与异步
    
                - 运行态:     程序的执行时间过长 ----> 将程序返回给就绪态。
                    - 非阻塞
    
                - 阻塞态:
                    - 遇到IO
    
            面试题: 阻塞与同步是一样的吗?非阻塞与异步是一样的吗?
                - 同步与异步: 提交任务的方式
    
                - 阻塞与非阻塞: 进程的状态。
    
                - 异步非阻塞: ----> cpu的利用率最大化!

    也可以通过"子进程.join()"的方式来阻塞主进程

    进程阻塞的条件:即进程出现I/0操作时会阻塞      常见的IO操作:input()  output()  time.selep(10)  文件读写  数据传输   ‘子进程.join()’

     

  • 相关阅读:
    计算两个日期之间相差的年数月数天数(JS实现)
    一次源码编译PHP折腾记
    Spring的JdbcTemplate与其事务
    spring aop的配置
    动态代理的几种方式
    移动互联网后端技术
    web front end stack web 前段技术概览
    BIO | NIO | AIO (Java版)
    什么是javascript中的闭包?
    get、put、post、delete含义与区别
  • 原文地址:https://www.cnblogs.com/bigbox/p/12002983.html
Copyright © 2020-2023  润新知