3

オブジェクトがガベージ コレクションを待機しているが、オブジェクトへの最後の参照が変更されたときに実行されていたスレッドが含まれている場合、そのスレッドは引き続き実行され、コードは引き続き実行されますか? では、削除する必要があるが、コードに影響を与えているゴースト オブジェクトが多数存在する可能性はありますか? これをどのように防ぎますか?オブジェクトが収集されるのを待っているかどうかを伝える方法はありますか?

4

2 に答える 2

5

スレッドは終了するまでガベージ コレクションされないため、スレッドが終了しない場合は、ガベージ コレクションに使用できません。コメントで fge が指摘しているように、多くの場合、スレッドは囲んでいるオブジェクトへの参照を持っているため、もちろんスレッドがガベージ コレクションされることはありません。

オブジェクトが収集される途中であるかどうかを知ることに関しては、この回答には、できること (およびできないこと) に関する詳細が記載されています。

それ以外に、system.gc() を使用してガベージ コレクションを実行するよう jvm に提案することはできますが、jvm がガベージ コレクタを実行するという保証はありません。

于 2013-06-08T19:08:14.853 に答える