続・javaでthreadでsocket

e_c_e_tが昔、聴いた話だとjavaでスレッドを生成するには次の手続きを取る必要がある。

  1. クラス宣言時にextends Threadをつける(Threadクラスを継承する)
  2. クラス宣言時にimplements Runnableをつける(Runnableインターフェースの実装クラスとして作る)

さらに、第三の作り方として次のようなのがある。ことを、最近知った。


ServerSocket server = new ServerSocket(10000); // ポート番号10000
Socket socket = server.accept(); // throws IOException
Thread t = new Thread(){
public void run(){
try{
InputStream stream = socket.getInputStream();
// 読み取り処理
}catch(IOException e){ e.printStackTrace();}
}
};
t.start();
弱点は、インデントが深くなりがち、長い処理を書くとわかりづらい。新しいメソッドを追加できない、など。
小さなスレッドをポンポン作る場合は便利だな。

自由が丘で晩飯を食う。味はぼちぼちだが量は充分。