对象在完成执行java.lang.Thread
后保持活动状态的原因可能是什么?run()
为了帮助理解这个问题,线程是如何从ThreadGroup
何时run()
完成的?
更新:Thread
保持活动的对象与Thread
活动/活动不同。当我问这个问题时,我正在调试Thread
对象泄漏(而不是泄漏)。Thread
对于基于 GNU Classpath 的 JDK(Harmony 应该是其中之一,对吧?),Thread
添加到ThreadGroup
构造函数Thread.<init>
中,一个Thread
创建但未启动的将被泄漏(即,无论是否run()
完成都保持活动状态)。在 HotSpot 中,Thread
添加到ThreadGroup
in 中Thread.start()
,似乎更有意义。也就是说,只有启动了才添加,run()
不挂起就保证删除。请注意,它ThreadGroup
被视为 GC 根。