何個ものスレッドを作るには?

サーバプログラム組むときに、クライアントからの要求を平行して受理するためにスレッドを使うと思うんだけど、少し引っかかる。

...
// サーバプログラムの内部(ループ部分)
	    while(true) {
		Thread th = new SendMessage(ss.accept());
		th.start();
	    }
...

単純に上のように書いてみたけど、スレッドthがrun()している間に新たにnewされてしまったら、thの中身はどうなるんだろう?
SendMessageのインスタンスそのものは依然残っているわけだけど、それはきちんと動作するんだろうか?
運が悪ければGCの対象になる可能性もあるんじゃないだろうか。
(ひとまず、一つ一つの要求に対してはきちんと対応していることだけは確認した)


となると、どう実装するか?
単純な手としては、Thread thそのものを配列にしてリングバッファのようにすること。
それでも、あまりにも連続してアクセスするとダメになるけど。
サーバはそういうものではあるとは思うが。



それにしても、何とか独習Javaの第3版を読み終わりそう(GUIは今回は読まないので)。
そのかわりSwing関連の書籍を読みたい。


追記

参照変数thが実行中のスレッドインスタンスを指していなくても問題ないらしい。
ただし、スレッドが止まり次第GCの対象となるようだ。