Python Timeout - PullRequest
       10

Python Timeout

10 голосов
/ 01 мая 2009

Я искал повсюду хороший сценарий тайм-аута, который может убить поток, если он был активен более X секунд, но во всех примерах, которые я видел, есть недостатки, которые не всегда останавливают поток , Использование thread.join (x) приводит к потере цели стать потоком.

Единственный достойный пример, который я нашел, это Тайм-аут при вызове функции , и это не без недостатков ..

Кто-нибудь знает лучший способ сделать это?

Ответы [ 2 ]

2 голосов
/ 01 мая 2009

Смотрите мой ответ на python: как отправлять пакеты в многопоточном режиме, а затем поток уничтожает себя - есть фрагмент с классом InterruptableThread и пример, который уничтожает другой поток после истечения времени ожидания - именно то, что вам нужно.

Существует также похожий рецепт Python в activestate.

0 голосов
/ 01 мая 2009

Я знаю, что это может быть не то, что вы хотите, но вы рассматривали подход к сигналу? Тайм-аут при вызове функции http://docs.python.org/library/signal.html#example

Вы можете установить сигнал тревоги в начале выполнения потока, а затем остановить поток в обработчике сигнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...