gpt4 book ai didi

python - python、windows平台如何强制超时函数

转载 作者:行者123 更新时间:2023-11-28 19:22:11 26 4
gpt4 key购买 nike

我想做的就是让一个函数超时,如果它在那之前没有返回

这一切都是因为 urllib2 支持 urlopen 超时,但不支持读取部分我的程序挂起。更改套接字的 defaulttimeout 不起作用。使用 signal.sigalrm不起作用。我无法切换到请求,因为那样我将不得不重写和测试更多内容。

我不想让线程运行该函数然后使线程超时,我想让该函数超时。有什么想法吗?

最佳答案

我喜欢用大卫的课here在我的项目中。我发现它非常有效,我喜欢它提供了一种通过装饰器在现有代码中实现的简单方法。例如:

# Timeout after 30 seconds
@timeout(30)
def your_function():
...

注意:这不是线程安全的!如果您使用多线程,信号将被随机线程捕获。然而,对于单线程程序,这是最简单的解决方案。

关于python - python、windows平台如何强制超时函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22454898/

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