0

我在 python 中编写了一个多线程程序,它总共运行 4 个线程,包括主线程。线程从一开始就启动,并且没有循环或围绕它们的创建的任何东西。

当我运行 threading.enumerate() 或其他等效项时,python 报告 5 个线程,包括我的 4 个和一个守护进程,并且这不会随着时间而改变(稳定状态)。

但是,widows 资源监视器显示超过 400 个线程归因于 python.exe 进程,并且它不断上升(增加 4,减少 2,依此类推)。

我想如果没有代码可能很难帮助我,而且代码对于社区来说太长了无法分析,但是 python 中是否有任何特定的常见事物往往会导致这种情况?资源监视器是否有可能看到一些运行并终止但未收集的死线程?

另外,一般来说,是什么使 len(threading.enumerate()) 和 windows 资源监视器输出的线程数如此不同?为什么 python 没有看到 windows 计算的这些 350 ++ 线程?

请注意,我的程序不断打开和终止子进程(使用 Popen 并在完成后调用 terminate() ),如果这可能导致某些事情......

4

0 回答 0