2010-11-26 6 views

答えて

30

スレッドの仕事は、いくつかのアンマネージリソース(ネットワークストリーム、ファイルなど)を使用していない限り - 場合をそれ自体後にクリーンアップする必要があります - あなたがする必要があるものは何もありません。スレッドを表すThreadオブジェクトへの参照を保持することは生きている基盤となるOSのスレッドを保持しないこと

注意。

+5

また、Fileオブジェクトが常に「本当の」ファイルを表すとは限らないのと同様に、ThreadオブジェクトがOSスレッドを表すとは限りません。 –

+0

スレッドは動的にクラスを作成し、それらをロードしています....最終的にClassLoaderはメモリ不足になりますか?はいの場合、どうすればそれをきれいにすることができますか? – Stackee007

+0

@ Stackee007:専用のClassLoaderを特別に作成し、作成したすべてのクラスをガベージコレクションできるようにする必要があります。私はこれが元の質問に特に関連しているかどうかわかりません。 –

10

run方法は、それが

2

Nopes実行だ終えたらあなたは、スレッドが終了する、する必要はありません。スレッドはそれ自身で実行され、終了し、ガベージコレクションを取得します。

2

ませんその必要はありません。スレッドがrunメソッドを終了すると、スレッドは終了状態になります。

8

は、一般的にガベージコレクタによって行われるクリーンアップ。スレッドがファイル/ソケットを使用する場合は、それらを閉じる必要があります。ベストプラクティスは、Thread::runでトップレベルfinallyブロック内のリソースを閉じることです。

実際には、スレッドではなくデータをクリーンアップする必要があります。

関連する問題