concurrent.futures模块在异步编程中非常常用,我常用在tornado里用它将同步操作异步化,这么优秀的模块,肯定很好奇它的内部原理的。
在网上搜了一些资料,感觉附加讲解还不如代码详细,于是就自己去看源码了,
而源码非常优秀,文件结构也非常简单,只有三个文件:
- _base.py:主要定义了一些常量、类、方法等,为thread和process使用
- process.py:ProcessPoolExecutor实现
- thread.py:ThreadPoolExecutor实现
发现源码里的注释非常详尽,各种情况流程都有做说明,process.py文件注释里面还画的有流程图,所以直接看源码就行了,没必要看那些源码解析文章,如果有看不懂再去查。
本人处于个人兴趣,创建了一个个人公众号,每天筛选国外网友发现的有趣的事情推送到公众号,欢迎关注!