Тайм-аут Python

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

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

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

2 Solutions collect form web for “Тайм-аут Python”

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

Существует также аналогичный рецепт Python при активизации.

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

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

 
Interesting Posts for Van-Lav

Существует ли Perl-эквивалент re.findall / re.finditer Python (результаты итеративного регулярного выражения)?

Тройной оператор Python

Что такое Pythonic для реализации простого FSM?

Как я могу предотвратить индексы TypeError: list должны быть целыми, а не кортежем при копировании списка python в массив numpy?

Добавление двух кортежей в элемент

Для выполнения моей функции требуется отрицательное время. Что произошло в мире?

Matplotlib: текстовый код цвета в легенде вместо строки

multiprocessing.Pool: В чем разница между map_async и imap?

Почему два индивидуально созданных неизменяемых объекта имеют один и тот же идентификатор и изменяемые объекты, а оба относятся к одинаковым значениям?

Использовать массив numpy в общей памяти для многопроцессорности

возможно ли слияние пустых нечетких совпадений с python pandas?

Можно ли переопределить метод, используемый для вызова страницы подтверждения удаления администратора Django?

Класс расширения Cython: как мне разоблачить методы в автоматически сгенерированной структуре C?

форматирование непоследовательных данных даты с помощью панд

Как добавить реестр Python в Windows

Python - лучший язык программирования в мире.