gpt4 book ai didi

python - 限时终止Python进程

转载 作者:行者123 更新时间:2023-12-01 05:27:17 28 4
gpt4 key购买 nike

看看这个带有 Process 的简单 Python 代码:

from multiprocessing import Process
import time

def f(name):
time.sleep(100)
print 'hello', name

if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()#Has to be terminated in 5 seconds
#p.join()
print "This Needs to be Printed Immediately"

我想我正在寻找像p.start(timeout)这样的函数。

如果 p 进程在 5 秒内没有自行完成,我想终止它。我该怎么做?好像没有这个功能。

如果 p.join() 未注释,则以下 print 行将必须等待 100 秒,并且无法“立即打印”。但我希望它是立即完成,因此 p.join() 必须被注释掉。

最佳答案

使用单独的线程启动进程,等待 5 秒,然后终止进程。同时主线程可以立即完成您想要发生的工作:

from multiprocessing import Process
import time
import threading

def f(name):
time.sleep(100)
print 'hello', name

def run_process_with_timeout(timeout, target, args):
p = Process(target=target, args=args)
p.start()
time.sleep(timeout)
p.terminate()

if __name__ == '__main__':
t = threading.Thread(target=run_process_with_timeout, args=(5,f,('bob',)))
t.start()
print "This Needs to be Printed Immediately"

关于python - 限时终止Python进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21068827/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com