进程基础,并发,并行,阻塞,同步,异步

并发并行,同步异步。

并发、并行是相对于计算机系统来说

同步,异步是相对于应用程序来说的

 

 

 

为什么计算机要有进程?

当一道程序因I/O请求而暂停运行此时CPU需要等待I/O操作完毕才能进行,这段时间

造成CPU空闲,为了这段时间更好的利用CPU便有了进程的概念,也就是在I/O操作

时CPU便立即转去运行另一道程序。

 

什么是进程?

进程是计算机中的最小的资源分配单位。进程(Process)就是正在执行的应用程序,是软件的执行副本。

进程之间相互独立,数据相互隔离,占用资源相对较多

 

开启多进程的意义

1.为了更好的利用CPU,所以如果我们的程序中都是网络IO,文件IO就不适合起多进程
2.为了数据的隔离,如果我们的程序中总是要用到数据共享,那么就不适合使用多进程
3.超过了cpu个数的任务数,都应该使用进程池来解决问题,而不能无限的开启子进程

 

什么是是程序?

程序是指令和数据的有序集合

 

并发 并行?(并发、并行是相对于计算机系统来说)

并发 资源有限的情况下,同一时间段多个任务交替执行(并发相当于一个人做完一个任务再做下一个任务)

并行 同一时刻多个任务同时执行(并行相当于用了分身术多个分身同时执行多个任务)

 

你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。
你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。
你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。

并发的关键是你有 在一段时间内 处理多个任务的能力,不一定要同时。
并行的关键是你有 同一时刻 处理多个任务的能力,强调同时。

它们最关键的点就是:是否是 同一时刻。

 

谈对并发的理解?

当需要同时执行多个任务,但资源有限,我们可以通过

开多进程,多线程,协程来实现并发,来提高用户体验。

 

什么是同步 什么是异步?(同步,异步是相对于应用程序来说的)

同步 一个任务的执行必须依赖另一个任务的结束,强调的是多个任务的顺序性

一定要等任务执行完了,得到结果,才执行下一个任务。

 

异步 多个任务可以同时进行

不等任务执行完,直接执行下一个任务。

 

谈谈对异步非阻塞的理解?

异步是一个任务的执行不需要等待另一个任务的结束例如start(开启一个进程)terminate(结束一个进程)

非阻塞就是没有阻塞,程序中没有IO操作,

程序中的应用 :可以用socket对象调用setblocking(False)来设置非阻塞

 

阻塞与非阻塞

阻塞:在程序中的I/O 操作  input sleep recv accept recvfrom等操作会造成阻塞

非阻塞 :不需要等待就可以直接完成的事情

https://www.zhihu.com/question/267866765

https://www.zhihu.com/question/26393784

 

进程的三状态图

 

posted @ 2021-05-24 21:41  平平无奇小辣鸡  阅读(87)  评论(0编辑  收藏  举报