第94p,并发编程的基础概念

【第94p,并发编程的基础概念】原标题:第94p , 并发编程的基础概念
大家好 , 我是杨数Tos , 这是《从零基础到大神》系列课程的第94篇文章 , 第三阶段的课程:Python进阶知识:网络编程之并发编程的基础概念 。

第94p,并发编程的基础概念
文章图片
要想真正理解并发非阻塞的原理 , 就得把一些基础概念理解清楚;包括:并发、并行、单道与串行、多道与并行、阻塞与非阻塞、多道技术这些概念 。
也许你看到这么多专业名词会感觉到懵 , 实际上整合起来就是两种概念 , 只是这两种概念中有些不同的内容;(唉!没办法 , 人类天生就喜欢用一些高深的词汇来展示自己的能力)

第94p,并发编程的基础概念
文章图片
1、单道技术与串行
单道技术与串行:单道与串行的结合 , 就是同时只能运行一个程序 , 想切换或运行新的程序 , 必须等到当前程序停止 , 然后才能运行新的程序;
举例:打开程序A、B、C分别需要1、2、3秒 , 则将3个程序打开则需要1+2+3=6秒 。

第94p,并发编程的基础概念
文章图片
2、并发与多道技术
并发:看起来是同时运行多个进程 , 实际是利用CPU的效率 , 不断切换不同进程 , 让人感觉多个进程在同时运行 , 这就是并发;
多道技术:以前的计算机的CPU一般都只有一个核 , 并不像现在这样有双核、4核;单核CPU则表示同时只能运行一个程序 , 为了让单核实现同时运行多个程序的效果就是多道技术 。 (详细可以看上一篇文章)

第94p,并发编程的基础概念
文章图片
3、并行与多道技术的结合
并行:真正意义上的同时执行多个进程 。
多道技术的核心是切换进程+保存进程状态;而并行是可以真正意义上允许执行多个进程;
如果多个任务同时执行 , 执行时间取决于 , 最长时间的任务 。
举例:打开程序A、B、C分别需要1、2、3秒 , 则将3个程序打开则需要3秒 。

第94p,并发编程的基础概念
文章图片
4、阻塞与非阻塞
阻塞与非阻塞描述的时程序当前的状态 , 阻塞就表示程序正在阻塞态 , 非阻塞就表示正在就绪态或运行态;

第94p,并发编程的基础概念
文章图片
5、同步与异步
同步就是任务提交之后 , 原地等待任务的返回结果 , 等待过程中不做任何事;(就是单道)
异步就是任务提交之后 , 不等任务的返回结果 , CPU去做其他事情;等任务执行完成之后 , 再返回任务的执行结果;异步在程序的表现给人感觉就是“同时在运行多个程序” 。

第94p,并发编程的基础概念
文章图片
总结:
前面讲了那么多概念 , 其实一直都是在讲两种概念;
一种是同步与阻塞 , 如果有多个程序在运行 , 就得排队 , 一个一个来 , 因为只有一个门进出;
一种是异步非阻塞 , 如果有多个程序在运行 , 不需要排队等待 , 因为有N个门可供进出 , 如果有谁堵在门口不动了(等用户下命令) , 计算机会将这个程序先移开 , 继续执行下一个程序;用户下了新命令了 , 再继续执行刚刚移开的程序 。
所以程序运行中 , 最理想最高效的方式就是异步非阻塞(asyncio) 。

第94p,并发编程的基础概念
文章图片
以上是本期内容 , 如果有表达不对的内容 , 欢迎您的留言、斧正 , 我们一起天天向上 。
感谢您的阅读 , 您的三连【关注、点赞、收藏】就是对我最大的支持 , 谢谢!
本文由杨数Tos原创 , 欢迎关注 , 带你一起长知识 。