クライアントからのTCPソケット接続を受け付けるJavaプログラムを作成したいとします。 クライアントがサーバーに接続するとすぐに、そのクライアントを処理するための新しいスレッドを作成します。
シングルコアプロセッサを搭載したサーバ用のUbuntu VMを実行している場合、いくつのクライアントをサポートできますか?
スレッドの最大数はプロセッサの数に依存しますか?
クライアント処理のためにサーバー側のコードでいくつかの最適化を提案したい場合は、それを行ってください。コードスニペットは次のとおりです。最大Javaでソケットを実行しているスレッドの数
SS = new ServerSocket(8080);
while(1) {
Socket S = SS.accept();
BufferedReader DIS = new BufferedReader(new InputStreamReader(S.getInputStream()));
PrintWriter DOS = new PrintWriter(S.getOutputStream(),true);
ServerThread CT = new ServerThread(S,DIS,DOS); // Class to handle client functions
Thread T = new Thread(CT);
T.start(); }
ご覧のとおり、さらに多くのスレッドが作成されます。
参照:http://docs.oracle.com/javase/tutorial/essential/concurrency/index.html –
詳細:http://docs.oracle.com/javase/tutorial/networking/index.html –
@ UsagiMiyamotoはリファレンスドキュメントのおかげです –