При запуске программы на Python количество потоков, о которых сообщает Windows Resource Monitor, велико и продолжает расти
Я написал многопоточную программу на Python, которая в общей сложности выполняет 4 потока, включая основной. Потоки запускаются в начале, и их создание не содержит циклов или чего-либо еще.
Когда я запускаю threading.enumerate() или какой-либо эквивалент, python сообщает о 5 потоках, включая мой 4 плюс демон, и это не меняется со временем (устойчивое состояние).
однако, монитор ресурсов вдов показывает более 400 потоков, относящихся к процессу python.exe, и он постоянно растет (увеличивается на 4, уменьшается на 2 и т. д.).
Я думаю, что было бы трудно помочь мне без кода, и код был бы слишком длинным для сообщества, чтобы анализировать, но есть ли какие-то определенные общие вещи в python, которые имеют тенденцию вызывать это? Возможно ли, что мониторы ресурсов видят неработающие потоки, которые запускаются и завершаются, но не собираются?
Кроме того, в общем, что может сделать число потоков, выводимых len(threading.enumerate()) и Windows Resource Monitor таким разным? Почему Python не видит эти 350 ++ потоков, которые считает Windows?
Обратите внимание, что моя программа постоянно открывает и завершает подпроцессы (используя Popen и вызывая terminate() после завершения), если это может привести к чему-то...