Java を使用して 500 のソケット接続を処理するシステムを実装しました。各接続は独自のスレッドで行われます。したがって、すべての接続が有効な場合、500 個のスレッドが実行されています。
8 GB の RAM を搭載したサーバー Intel® Xeon® Processor E5620 は、これらすべてのスレッドを処理するのに十分でしょうか?
答えが「はい」か「いいえ」かに関係なく、コストはどのように計算できますか?
サンプルコード:
Executor executor = Executors.newFixedThreadPool(500);
ServerSocket serverSocket = null;
Socket socket;
try {
serverSocket = new ServerSocket(port);
} catch (IOException e) {
e.printStackTrace();
}
while (true) {
try {
if (serverSocket != null) {
socket = serverSocket.accept();
} else {
continue;
}
SocketClient client = new SocketClient(socket);//socket client is responsible for handling string values that will be read from socket, and insert values to the DB
executor.execute(client);
} catch (IOException e) {
connectedDevices.remove("Unknown" + i);
}
}
ありがとう。