Взгляните на этот простой код питона с процессом:Прекратить 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 секунд и не может быть «Печатный Immediately'.But Я хочу, чтобы это было сделано немедленно, поэтому p.join()
должно быть закомментировано.
Это, вероятно, не самый хороший вариант, но если вы действительно хотите процесс, вы должны быть в состоянии прервать его, посылая сигнал на (поскольку у вас есть доступ к его PID). –