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

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()’

 

原文地址:https://www.cnblogs.com/bigbox/p/12002983.html