gpt4 book ai didi

python - Eventlet超时未退出

转载 作者:行者123 更新时间:2023-12-01 04:40:26 28 4
gpt4 key购买 nike

为什么 eventlet 允许它完成 6 秒,而它应该在 5 秒后退出缩进?

>>> with eventlet.Timeout(5):
time.sleep(6)
x = 1
>>> x
1

最佳答案

Eventlet 提供协作多线程。这意味着您需要让出控制权,以便为集线器或协程(在本例中,集线器实现超时)提供运行的机会。屈服控制:

  • 要么使用绿色版本的 IO 和 sleep
  • 或者执行eventlet.monkey_patch(),现在你可以使用常规的timesocket等模块,替换为“绿色”版本,与Eventlet合作。

任何没有绿色调用的 CPU 密集型代码,例如 [_ for _ in xrange(1000000000)] 根本不可能中断。如果您发现自己处于类似情况,请将 eventlet.sleep(0) 放置在循环中的某个位置,这将进入 Eventlet 中心并允许超时工作。

关于python - Eventlet超时未退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30795353/

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