摘要:本来这篇文章应该十一月份就完工的,但是来来回回一直没怎么想写,今天补上.jpg

前言

到2021年2月6日为止,我也没想明白python协程的作用,感觉python协程实质没什么作用或者说协程是个python里面较底层的东西,我们平时用的封装好的api,比如说from concurrent.futures import ThreadPoolExecutor 线程池的使用。所以这里还是以理解python协程的理念为主。更多常见的io密集型操作感觉还是用线程池和进程池写代码更为顺手,考虑到python没有真正的多线程,所以进程池应该是最优解,但是进程之间变量的共享又是个难题,所以我还是顺手用线程池。感觉日常唯一使用到的和协程有关的就是aioredis或者aiohttpaiomysql。而且更多的还是去使用别人封装好的api......

以下的按照顺序,由浅入深,详细的讲述了python协程的基本原理

协程 生成器 and coroutine

参考:协程 生成器 and coroutine(一)

task and future 对象

参考:协程 task and future(二)

同步与异步,阻塞和非阻塞

同步与异步,阻塞和非阻塞

await关键字

参考:协程 await关键字 (三)

python协程的原理

参考:python协程的原理

事件循环EventLoop

参考:python协程系列(六)——asyncio的EventLoop以及Future详解,即可,作者写的太好,我下不去笔了.......

更多参考

下面这个作者本身写的就很透彻了,我只是在他的基础上进行了更多的扩充,强烈推荐看一下
python协程系列(一)——生成器generator以及yield表达式详解
python协程系列(二)——python协程的通俗理解以及使用yield关键字实现协程
python协程系列(三)——yield from原理详解
python协程系列(四)——同步/异步、并发/并行、线程/进程
python协程系列(五)——asyncio的核心概念与基本架构
python协程系列(六)——asyncio的EventLoop以及Future详解
python协程系列(七)——asyncio结合多线程解决阻塞问题以及timer模拟

供参考asyncio库代码

asyncio库源代码.rar

文章目录