Итак, я использую декоратор timeout
, обрисованный в общих чертах здесь :
Итак, я установил функцию:
@timeout(5)
def wait(n):
time.sleep(n)
print(n)
wait(1)
1
Хорошо, это как ожидалось
wait(10)
Traceback (most recent call last):
File "", line 1, in <module>
wait(10)
File "", line 39, in wrapper
raise ret
Exception: function wait timeout 5 seconds exceeded!
Отлично! Оно работает. Теперь я могу . , ,
10
Черт.
Я просмотрел много старых вопросов по этому вопросу, и кажется, что python
не может убить поток, но на данный момент всем им> 10 лет. Мне было интересно, есть ли что-нибудь лучше (или в сфере threading
или каким-то другим образом @timeout(n)
) сейчас?