线程垃圾回收

11

如果不再引用Python threading.Thread,但它仍在运行,它是否会被垃圾回收?

# Start a thread with no reference
Thread(target=some_long_running_function).start()
# Do lots of other stuff

我对Python并没有特别的了解,但如果一个正在运行的线程突然消失,那将是非常奇怪的。在单线程应用程序中,主线程怎么样?你一直保持对它的引用吗? - Holger
3
可能是Python线程垃圾回收的重复问题。 - Xophmeister
1个回答

13

我认为 Threading 模块在线程运行时包含了对线程的引用,并且在 Thread 的 run() 方法执行完后被清除。我无法对模块的内部和实现方式发表评论,但我相信可以通过 threading.enumerate() 访问这些引用(活动线程的引用)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接