オブジェクトの実行java.lang.Thread
が終了した後もオブジェクトが存続する理由は何でしょうか。run()
そして、この質問を理解するのを助けるために、スレッドはThreadGroup
いつrun()
行われるかからどのように削除されますか?
更新:生きているオブジェクトは、アクティブ/生きてThread
いるオブジェクトとは異なります。この質問をしたとき、私は(リークではなく)オブジェクトリークThread
をデバッグしていました。GNU Classpathに基づくJDKの場合(Harmonyはそのうちの1つである必要がありますか?)、コンストラクターに追加され、作成されたが開始されていないものがリークされます(つまり、終了しても存続します)。HotSpotでは、にが追加されていますが、これはより理にかなっているようです。つまり、起動した場合にのみ追加され、ハングしない場合は削除されることが保証されます。これはGCルートとして扱われることに注意してください。Thread
Thread
Thread
ThreadGroup
Thread.<init>
Thread
run()
Thread
ThreadGroup
Thread.start()
run()
ThreadGroup