协程常见用法(五)
摘要:本来这篇文章应该十一月份就完工的,但是来来回回一直没怎么想写,今天补上.jpg
前言
到2021年2月6日为止,我也没想明白python协程的作用,感觉python协程实质没什么作用或者说协程是个python里面较底层的东西,我们平时用的封装好的api,比如说from concurrent.futures import ThreadPoolExecutor 线程池的使用。所以这里还是以理解python协程的理念为主。更多常见的io密集型操作感觉还是用线程池和进程池写代码更为顺手,考虑到python没有真正的多线程,所以进程池应该是最优解,但是进程之间变量的共享又是个难题,所以我还是顺手用线程池。感觉日常唯一使用到的和协程有关的就是aioredis或者aiohttp、aiomysql。而且更多的还是去使用别人封装好的api......
以下的按照顺序,由浅入深,详细的讲述了python协程的基本原理协程 生成器 and coroutine
task and future 对象
同步与异步,阻塞和非阻塞
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库代码
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。