gpt4 book ai didi

python - 什么是 python 中的异步 I/O?

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

很抱歉这个愚蠢的初学者问题,但我在理解异步 I/O 的概念时遇到了真正的问题,我不谈论回调和其他复杂的东西,我只是想了解“python 如何执行代码”的开头"

所以这是我想理解的例子

class Foo()
take a user input # line 1
seek for this input from the database # line 2
make some operation using the database output # line 3
make an output to the client and show the message to the page # line 4

因此,如果用户将使用 Tornado,例如,如果他在服务器上执行代码,那么,假设我们有 4 个客户端 请求 url 与类 Foo 匹配的页面 那么,Python将如何执行代码;

即;在 python 中,既然它是一种 Script 语言,那么每一行都在执行并返回值?所以它会为用户 1 执行第 1 行,然后停止,并为 第 1 行 提供服务客户端 2 等等,然后跳到 第 2 行 等等?

最佳答案

问题与python没有太大关系。这是一个关于异步 python 框架(即 Tornado )的问题。

tornado 中的客户端是异步处理的。这意味着当服务器处理客户端请求并点击完成某些异步操作的行时(您的示例中的数据库查询 - 第 #2 行),它会在那里中断执行并切换到另一个客户端。当数据库查询完成时,有关它的通知将进入队列,客户端在那里等待轮到它从他停止的地方再次执行(第 #3 行)。

Tornado 有它自己的客户端执行模式。它叫做reactor pattern .基本上这意味着它在客户端队列中循环并在需要时处理它们(即请求通过套接字发出,数据库查询完成)。

这种非阻塞循环是通过操作系统的实用程序完成的,例如 Epoll .

关于python - 什么是 python 中的异步 I/O?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12779808/

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