如何阻止方法停滞?

2024-03-28 10:07:17 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,当这个方法试图解决一个非常大的问题,比如9999^99999^99999,它只会停止运行,并停止其他所有的运行,我怎么能让它在10秒后结束呢?你知道吗

def solve_equ(variable, equ):
    ans = []
    if variable is None:
        return [f"`{N(equ)}`"]
    else:
        partial_ans = solve(equ, variable, dict=True)
    for i in partial_ans:
        ans.append(f"{variable} = `{N(list(i.values())[0])}`\n")
    return ans

solve()方法是一个拖延的方法


Tags: 方法nonetrueforreturnifisdef
1条回答
网友
1楼 · 发布于 2024-03-28 10:07:17

使用multiprocessing

def solve_equ(variable, equ):
    ans = []
    if variable is None:
        return [f"`{N(equ)}`"]
    else:
        partial_ans = solve(equ, variable, dict=True)
    for i in partial_ans:
        ans.append(f"{variable} = `{N(list(i.values())[0])}`\n")
    return ans

proc = multiprocessing.Process(target=solve_equ, name="Solve", args=(x))
proc.start()
time.sleep(10)
proc.terminate()

proc.join()  # cleanup

name对代码没有影响,只是为了识别。你知道吗

相关问题 更多 >