day 31 并发,进程

进程

进程是计算机中最小的资源分配单位

操作系统层面理解进程的机制: 正常情况下主进程会等待子进程运行完毕回收子进程,这是垃圾回收机制

1.针对单个cpu的多道技术:

1.1.空间上的复用:

       cpu处理3个任务:炒菜,洗衣服,做饭

       前提:如果这三件事情没有一点 IO

       空间上的复用(内存可以加载很多个不同的任务)

1.2.时间上的复用:

       cpu处理3个任务:炒菜,洗衣服,做饭

       1.遇到进程中的IO时,cpu就会切换处理下一个任务(节省时间提高效率)

       2.一个进程长时间被cpu处理时,操作系统就会强硬的将cpu调出去处理下一个进程

 2.针对单个cpu的分时技术(分时操作系统):

            让所有的软件都能看起来同时执行(给每个任务(单个主进程)分配了能够使用cpu的时间),分时系统在多任务之间切换是根据时间片(cpu的等待时间)来的.提高了用户的体验,但同时降低了cpu的使用率

2.父进程与子进程

执行一个py文件就等于开启了一个进程

在代码中实现创建多进程:

            需要在一个py文件中,用代码去执行一个命令. 

面试会问

进程有几种状态:

        运行          阻塞          就虚

并发,串行,并行,阻塞,非阻塞

面试会问

并发:一个cpu处理多个任务,如果遇到 io就会跳过此任务,执行下一个任务,等到 io结束就会回来继续处理该任务

串行:一个cpu处理多个任务,一个一个的执行,如果当前任务未执行完,就不会跳过执行下个任务

并行:真正意义的一对一服务,4个cpu处理4个任务,多核cpu同时处理任务

阻塞:IO成为阻塞

非阻塞:进程没有IO就是非阻塞

 

同步和异步

同步:所谓的同步就是一个任务的完成需要依赖另一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列."要么成功都成功,失败都失败,两个任务的状态可以保持一致."

异步:所谓的异步是不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作,依赖的任务也立即执行,只要自己完成了整个任务就算完成了,"至于被依赖的任务最终是否真正完成,依赖它的任务无法确定",所以他是不可靠的任务序列

 

 

posted @ 2019-02-25 21:38  jack_zhangn`  阅读(101)  评论(0编辑  收藏  举报