Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 21, 2011 13:12:11

Игнат
От:
Зарегистрирован: 2010-10-02
Сообщения: 224
Репутация: +  0  -
Профиль   Отправить e-mail  

зависают потоки concurrent.futures, помогите найти причину

python3.1, pyqt4

для многопоточности использую
from concurrent.futures import ThreadPoolExecutor

изначально запускается пара десятков потоков
каждый из них начинает выполнять простые действия - скачивать веб-странички и сохранять их в файл
+ дергать слот, который обновляет ГУИ, выводя инфу о прогрессе

проблема в том, что если поставить к примеру 12 потоков и каждому сказать скачать 20 страниц, то работа встает колом примерно после завершения 8 потоков. 8 потоков сделали своё дело, просмотрели 160 страниц и процесс остановился. ничего не выводится в лог, прогрессбар стоит на месте, программа при этом не зависает.

уменьшаю кол-во просмотров до 5 - и все работает нормально.

сначала думал что может быть надо как-то блочить слот, пока он не обновит ГУИ, но потом сделал сохранение в файлы и кол-во файлов тоже говорит о том, что свою работу выполнили только 8 потоков.

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



Офлайн

#2 Фев. 21, 2011 13:43:21

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

зависают потоки concurrent.futures, помогите найти причину

Логировать процесс работы потока. Вошел в метод, вышел из метода. Смотреть на чем прекращается работа.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version