如何在Python中限制函数调用的执行时间

如何在Python中限制函数调用的执行时间

在我的代码中有一个与套接字相关的函数调用,该函数来自另一个模块,因此我无法控制,问题是它偶尔阻塞几个小时,这是完全不能接受的,我如何从代码中限制函数的执行时间?我想解决方案必须利用另一个线程。



茅侃侃
浏览 773回答 3
3回答

尚方宝剑之说

使用with陈述为了给超时功能一些语法糖:import signalfrom contextlib import contextmanagerclass TimeoutException(Exception): pass@contextmanagerdef time_limit(seconds):     def signal_handler(signum, frame):         raise TimeoutException("Timed out!")     signal.signal(signal.SIGALRM, signal_handler)     signal.alarm(seconds)     try:         yield     finally:         signal.alarm(0)try:     with time_limit(10):         long_function_call()except TimeoutException as e:     print("Timed out!")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python