python3.1, pyqt4
для многопоточности использую
from concurrent.futures import ThreadPoolExecutor
изначально запускается пара десятков потоков
каждый из них начинает выполнять простые действия - скачивать веб-странички и сохранять их в файл
+ дергать слот, который обновляет ГУИ, выводя инфу о прогрессе
проблема в том, что если поставить к примеру 12 потоков и каждому сказать скачать 20 страниц, то работа встает колом примерно после завершения 8 потоков. 8 потоков сделали своё дело, просмотрели 160 страниц и процесс остановился. ничего не выводится в лог, прогрессбар стоит на месте, программа при этом не зависает.
уменьшаю кол-во просмотров до 5 - и все работает нормально.
сначала думал что может быть надо как-то блочить слот, пока он не обновит ГУИ, но потом сделал сохранение в файлы и кол-во файлов тоже говорит о том, что свою работу выполнили только 8 потоков.
в питоне есть какой-то лимит памяти или времени на выполнение? подскажите пожалуйста, в каком направлении копать и как узнать, почему процессы остановились