Python协程还不理解?请收下这份超详细的异步编程教程( 五 )


文章插图
 
补充:

Python协程还不理解?请收下这份超详细的异步编程教程

文章插图
 
那到这里,同学们已经掌握了:多线程、多进程、线程池、进程池、异步 。那有同学可能会问:可不可以把这几个方法结合起来呢?
那我告诉你们的是,异步只能用异步的方法执行,不过大家是否用过 concurrent.future 模块呢?这个模块是底层是 异步,所以这也是我接下来所要说的 。
6. 异步使用线程池与进程池Concurrent.futures 这个模块可以和异步连接,具有线程池和进程池 。管理并发编程,处理非确定性的执行流程,同步功能 。
使用 requests 的异步
代码如下:
Python协程还不理解?请收下这份超详细的异步编程教程

文章插图
 
编写程序测试时间,建议不要同时运行,注释掉其他运行方法再运行:
Python协程还不理解?请收下这份超详细的异步编程教程

文章插图
 
输出结果:
Python协程还不理解?请收下这份超详细的异步编程教程

文章插图
 
我们来分析一下输出结果,我们会分析进程池花费的时间会比线程池更多,这是为什么呢?
  1. 多线程非常适合 I/O 密集型,不适合 CPU 密集型;
  2. 进程池创建销毁的资源开销大,创建一个进程所耗费的资源要比创建一个线程耗费的时间大很多,销毁它也需要很长的时间 。(准备工作非常多)
7. 小结对于协程的入门来说,这些知识已经够用了 。当然协程涉及到的知识不止这些,这里只是为了大家提前对协程有一定的了解,后面将继续讲解协程的其他知识,一切的协程知识基础都是为后面的异步爬虫教程做准备,只有熟悉了使用协程才能在后面教程中快速上手操作 。接下来将进一步提到本文没有提及的事件循环、Task、Future、Awaitable 等一系列知识点,以及协程的高层 API 知识 。敬请期待!

【Python协程还不理解?请收下这份超详细的异步编程教程】


推荐阅读