gpt4 book ai didi

python - 你怎么理解tornado中的ioloop?

转载 作者:太空宇宙 更新时间:2023-11-04 09:41:45 25 4
gpt4 key购买 nike

我正在寻找一种方法来理解 ioloop in tornado ,因为我多次阅读官方文档,但无法理解。具体来说,它为什么存在。

from tornado.concurrent import Future
from tornado.httpclient import AsyncHTTPClient
from tornado.ioloop import IOLoop
def async_fetch_future():
http_client = AsyncHTTPClient()
future = Future()
fetch_future = http_client.fetch(
"http://mock.kite.com/text")
fetch_future.add_done_callback(
lambda f: future.set_result(f.result()))
return future

response = IOLoop.current().run_sync(async_fetch_future)
# why get current IO of this thread? display IO, hard drive IO, or network IO?
print response.body

我知道什么是 IO,输入和输出,例如读取硬盘、在屏幕上显示图形、获取键盘输入。根据定义,IOLoop.current() 返回该线程的当前 io 循环。

我的笔记本电脑上有许多运行此 python 代码的 IO 设备。此 IOLoop.current() 返回哪个 IO?我从来没有听说过 javascript nodejs 中的 IO 循环。

此外,如果我只想进行数据库查询、读取文件,为什么还要关心这个低级的事情呢?

最佳答案

I never heard of IO loop in javascript nodejs.

在 node.js 中,等效的概念是 event loop .节点事件循环大部分是不可见的,因为所有程序都使用它——它是在你的回调之间运行的。

在 Python 中,大多数程序不使用事件循环,因此当您需要时,您必须自己运行它。这可以是 Tornado IOLoop、Twisted Reactor 或 asyncio 事件循环(所有这些都是特定类型的事件循环)。

Tornado 的 IOLoop 的命名可能令人困惑 - 它不直接执行任何 IO。相反,它协调程序中可能发生的所有不同的 IO(主要是网络 IO)。将其视为“事件循环”或“回调运行器”可能会有所帮助。

关于python - 你怎么理解tornado中的ioloop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51434538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com