3

私が作成しているゲームでは、スレッドの多くのインスタンスを使用しますが、それらを追跡しません。

clientThread cT = new clientThread(socket);
new Thread(cT).start();

私が知る必要があるのは、トレッドのインスタンスが終了したとき(すべてのループが完了し、使用されなくなったとき)、メソッドのインスタンスと同じように、それは破棄されるということです。または、それを破棄するために特別なコードを使用する必要がありますか?

4

4 に答える 4

14

スレッドは通常のオブジェクトであり、他のオブジェクトと同様にガベージコレクションされます。スレッドオブジェクトの場合、スレッドが終了すると収集の対象になります。

于 2012-08-15T20:14:58.683 に答える
4

完了するとすぐに破棄されrun()ます。リリースするために特別なコードを追加する必要はありません。

注:破棄されたということは、メモリから削除されたことを意味するわけではありません(ただし、それ以上実行されません)。次のGCコレクションの実行時にGCされる可能性があります。

于 2012-08-15T20:13:57.720 に答える
2

ガベージコレクターがそれに到達すると、それは破棄されます。

于 2012-08-15T20:14:31.200 に答える
1

他の友達はあなたが尋ねたことに正確に答えました。コメントは1つだけです。

私はスレッドの多くのインスタンスを使用させていますが、それらを追跡していません。

これを行わないでください。つまり、new Thread(cT).start();スレッドの生成を開始します。
スレッドプールとExecutorServiceについて読む

于 2012-08-15T20:42:45.270 に答える