tornado【5】阻塞与异步概念

在tornado中,我们谈到的阻塞一般是针对网络IO,而忽略其它的阻塞(磁盘IO, 互锁)。

异步函数在结束之前就返回了,它通常在后台触发一些任务,等执行完之后再调用某些操作。有很多异步接口的实现:

  • 回调函数(常用)
  • 返回一个占位符(Future, Promise,Defered)
  • 传送给队列
  • 信号机制

协程方式编写的代码:

from tornado import gen
@gen.coroutine
def fetch_coroutine(url):
    http_client = AsyncHTTPClient()
    response = yield http_client.fetch(url)
    raise gen.Return(response.body)  #返回一个Future对象

在有yield的生成器中可以用raise gen.Return返回一个Futrue对象。在Python3中可以直接用return

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容