Остановить поток если он долго выполняется (python)

zek24

Мой дом здесь!
Команда форума
Модератор
Регистрация
14 Ноя 2009
Сообщения
811
Реакции
310
  • Автор темы
  • Модер.
  • #1
Привет.
Изучаю потоки и возник вопрос: как остановить один из них, если, скажем он выполняется более n секунд.
Нашел signal.alarm(n) но не хочет работать на винде, а это принципиально.


Код:
from concurrent.futures import ThreadPoolExecutor, as_completed
from time import sleep

y = ...
def x(Proxy):
    ...
     try:     
        signal.alarm(2) #не дружит с виндой(
        time.sleep(5)
        do_some
       
    except Exception as error:
        print(error)
    finally:
        ...


with ThreadPoolExecutor(max_workers=3) as executor:
    executor.map(x, y)

Как можно по другому обойтись?
Гугл не помог(
 

drema1971

Писатель
Регистрация
17 Окт 2017
Сообщения
3
Реакции
0
Python:
atexit.unregister(concurrent.futures.thread._python_exit)
Может нечто такое
 
Сверху