スレッドサーバーを実装するために、次のコードを記述しました。
ServerSocket passiveSocket = new ServerSocket(port, maxConnections);
while(true){
final Socket socket = passiveSocket.accept();
new Thread(new Runnable() {
public void run() {
//access socket as needed to communicate. E.g.:
PrintWriter writer = new PrintWriter(socket.getOutputStream());
//Finally close socket.
socket.close();
}
}).start();
}
これでうまくいくように見えますが、振り返ってみると、次の接続が到着したときに最後のソケット可変ソケットで何が起こっているのかがよくわかりません。各スレッドは、スレッドの開始時に最新だったソケットインスタンスにどのように関連付けられていますか?-最後のキーワードがその原因ですか?