说我有这样的代码:
def bar(a):
def foo():
b = 1+a
c = b + 10 #line responsible for en
z = b+c
return z
if __name__ == '__main__':
# Start bar as a process
p = multiprocessing.Process(target=foo)
p.start()
# Wait for 10 seconds or until process finishes
p.join(10)
# If thread is still active
if p.is_alive():
print(b)
# Terminate
p.terminate()
p.join()
return foo()
data['D'] = data['E'].apply(bar)
代码无休止地运行而没有错误,因此异常处理没有帮助。我想返回b
以获取系列中超过x秒的元素,然后移动到系列中的下一个元素而不终止整个操作。
因此,如果data['E']
中有10个元素,如果将foo应用于第三个元素需要超过x
秒,则返回b
并继续前进到第四个元素。 / p>
我试图使用多处理,如第二个解决方案所示:Timeout on a function call无济于事。代码原样,仍然无休止地运行。请帮助。