続・javaでthreadでsocket
e_c_e_tが昔、聴いた話だとjavaでスレッドを生成するには次の手続きを取る必要がある。
- クラス宣言時にextends Threadをつける(Threadクラスを継承する)
- クラス宣言時に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();
小さなスレッドをポンポン作る場合は便利だな。
自由が丘で晩飯を食う。味はぼちぼちだが量は充分。