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