如何在X毫秒后超时python函数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在X毫秒后超时python函数?相关的知识,希望对你有一定的参考价值。
我在python中调用函数A(i)
。如果它执行超过X毫秒,我希望它被终止。我已经看了一些超时的方法,包括signal.alarm()
,但他们都花时间在整秒。我想做的事情如下:
signal.alarm(0.26) //time out after 0.26 seconds
我该怎么做呢?
答案
除了solution I linked as a possible duplicate,如果你的系统支持它,你也可以使用ctypes
来使用ualarm
。
例如,在macOS上:
import ctypes
libc = ctypes.CDLL("libc.dylib")
libc.ualarm(10000, 0) # 10,000 microseconds
另一答案
singal.settimer需要unix。否则你可以使用time.time()
import time
start = time.time()
now = time.time()
while now - start < 0.26: # 0.26 seconds
now = time.time()
print (now-start)
你可以使用decorator,将你的函数放在while循环中,或者在计时器结束时引发异常(可能还有其他的)。
您可能需要thread计时器。
以上是关于如何在X毫秒后超时python函数?的主要内容,如果未能解决你的问题,请参考以下文章
Vert.x SQLConnection:“路由中出现意外异常”,“等待 30000(毫秒)回复后超时”
在 .net Rider IDE 中恢复解决方案的 nuget 包:无法下载包 `x` 对 GET `x` 的 HTTP 请求在 100000 毫秒后超时