QThread не является потоком в Qt , но является классом, который служит для обработки собственных потоков каждой ОС, как и модуль потоков Python, и это упоминается в документах .:
Класс QThread предоставляет независимый от платформы способ управления потоками.
Поэтому при использовании threading.current_thread()
python пытается получить собственный поток, но как документы указывают (и вы также можете увидеть это в исходном коде ):
Возвращает текущий объект Thread, соответствующий потоку вызывающегоконтроль.Если поток управления вызывающей стороны не был создан через модуль потоков, возвращается фиктивный объект потока с ограниченными функциональными возможностями.
, поскольку QThread создал поток, который не обрабатывается модулем потоков, который вернетфиктивный поток, представляющий поток.
Они хранятся в словаре внутри модуля потоков, поэтому они не будут удалены с помощью GC и не являются утечкой.Это упоминается в документах :
Существует вероятность создания «фиктивных объектов потока».Это объекты потоков, соответствующие «чужим потокам», которые являются потоками управления, запущенными вне модуля потоков, например непосредственно из кода Си.Фиктивные объекты потока имеют ограниченную функциональность;они всегда считаются живыми и демоническими и не могут быть объединены ().Они никогда не удаляются, так как невозможно обнаружить завершение чужих потоков.
А в исходный код :
# Dummy thread class to represent threads not started here.
# These aren't garbage collected when they die, nor can they be waited for.
# If they invoke anything in threading.py that calls current_thread(), they
# leave an entry in the _active dict forever after.
# Their purpose is to return *something* from current_thread().
# They are marked as daemon threads so we won't wait for them
# when we exit (conform previous semantics).
Таким образом, в заключение вымышленные элементы, которые предоставляют информацию о потоках, не обработанных потоками, на них не влияет GC, поскольку они хранятся в словаре и, следовательно, не являются утечкой памяти.