MIDPのThread(後編)

ということで、今晩は教えてGoogle先生から始まる。
上記のリンク、及び

独習Java第3版

独習Java第3版

を読んでいて分かったのだが、

  • runメソッドが終了する、すなわちrunメッソドのループが終了し、メソッドの処理がすべて終わると、そのスレッドオブジェクトは自動的に破棄される

ようである。
つまり再開したくとも、そのスレッドに対する参照は既にガーベージコレクションの彼方、ということになり、runメソッドを使用すれば、参照先はありませんよ、でエラーとなるわけである。


スレッド止めたんだから、当たり前か。


従って再度スレッドを起動したければ、新たなスレッドオブジェクトを作成(new)し、runメソッドを実行すれば良いことになる。
この通り、実装したところ、確かにその通り動作してくれた。
念のためThread.isAliveで確認したが、やはりループを止めたとこでfalseを返しており、破棄されたようである。
ということで、一件落着となった。