Python实现异步的框架有很多,但核心思想可能是基于以下两种方式
twister
geventtwister
1、twister
twister的思想是通过回调包装异步操作。我们看到scrapy中间请求的实现是twister模式
scrapy.Request(url='xxx', callback=func)
通过传输包装的查询,当框架帮助我们提出请求时,它将通过查询进行回调。如果你的请求很简单,那没关系。你只需要回调一次。如果你的请求更复杂,你将进入回调地狱(callback hell)
2、gevent
gevent是一个可扩展的异步I/O框架,采用完全同步的编程模型。
所有异步I/O都依赖于它同样的模式。它不在于代码如何运行,而在于等待在哪里完成。多路I/O操作需要统一等待,因此等待只出现在代码中的一个地方。当事件触发时,异步系统需要恢复等待事件的代码块。
以上是python实现异步的两个框架,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。