我的 EC2 Instance (Medium) 有问题,与我的笔记本电脑相比,它相对强大,但我最近在服务器端做了一个接受套接字连接的小程序。
客户端将连接到弹性负载均衡器,然后将其转发到任何服务器。
我已经用我的客户端小程序在我的笔记本电脑上尝试了服务器端小程序,它运行良好。
但是,当我将服务器端小程序移动到 Amazon EC2 实例时,它通常会在小程序上获得 100% 的 CPU 使用率。
这就是我接受套接字的方式
void listen(int port) throws IOException
{
newSocket = new ServerSocket(port);
while (true)
{
Socket sock = newSocket.accept();
PrintStream out = new PrintStream(sock.getOutputStream());
outputStreamwithName newItem = new outputStreamwithName(out, null);
outputStreams.put(sock, newItem);
new ServerThread(this, sock, GUI);
}
}
我怀疑这段代码可能会导致 100% 的 CPU 负载,但在我的笔记本电脑上,两个小程序最多只使用 10%。
我尝试调试代码,一切都停在 newSocket.accept() 处,这应该是阻塞的,所以它不应该占用大量 CPU 吗?