python - 在 Windows 上使 Python 函数超时的最简单方法
问题描述
以下过程运行十秒钟。我想在五秒钟后杀死它。
import time
def hello():
for _ in range(10):
print("hello")
time.sleep(1)
hello()
解决方案可能涉及线程、多处理或装饰器。之前已经提出过类似的问题(提前抱歉),但解决方案都非常复杂。只需几行代码就可以实现像这样听起来很基础的东西。
解决方案
取决于用例......对于这个非常具体的例子
import time
def hello(timeout=5):
start_time = time.time()
for _ in range(10):
if time.time()-start_time > timeout:
break
print("hello")
time.sleep(1)
hello()
是你可以做到的一种方式
或者你可以使用多处理
import multiprocessing
...
if __name__ == "__main__":
proc = multiprocessing.Process(target=hello)
proc.start()
time.sleep(5)
proc.terminate()
推荐阅读
- python - 如何在类的元组中调用函数?
- linux - Docker 环境变量未正确传递
- html - 我的带有 zmdi 图标的 html 按钮不起作用
- julia - Julia:将 Float64 转换为日期和日期时间
- javascript - 为什么我需要额外的屏幕点击来隐藏元素?
- android - NDK 未配置(尽管已安装)——如何在没有 Android Studio 的情况下修复
- python - 是否可以在 AWS Lambda 函数之间共享一段代码?
- android - 我无法在 android studio 中安装插件
- mobile - 如何使页面的背景半透明以在 Flutter 中显示上一个屏幕?
- asp.net-core-2.0 - Jwt 认证:JwtTokenBuilder