当前位置:   article > 正文

从 async_call_method() 开始探索

async_mothod_call
  1. from tornado.concurrent import Future
  2. def async_call_method(fun, *args, **kwargs):
  3. future = Future()
  4. // 定义一个闭包 finish
  5. def finish():
  6. try:
  7. result = fun(*args, **kwargs)
  8. if future._callbacks:
  9. IOLoop.current().add_callback(future.set_result, result)
  10. else:
  11. future.set_result(result)
  12. except:
  13. if future._callbacks:
  14. IOLoop.current().add_callback(future.set_exc_info, sys.exc_info())
  15. else:
  16. future.set_exc_info(sys.exc_info())
  17. child_gr = greenlet.greenlet(finish)
  18. child_gr.switch()
  19. return future

tornado 相关官方文档

Future 是一种用于并发编程的模式,首次引入是在 python 3.2 的 concurrent.futures 模块。

Future 对象是一个对于异步返回结果的占位符。

一个 Future 对象包含了一次异步操作的结果。在同步编程中,Futures 被用于等待从一个线程池或进程池里返回的结果;在 tornado 中,future 通常被用在

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/102618
推荐阅读
相关标签
  

闽ICP备14008679号