我的EC2实例(中)有问题,与我的笔记本电脑相比功能相对较强,但我最近在服务器端制作了一个接受套接字连接的小程序。
客户端将连接到弹性负载均衡器,然后它将转发到任何服务器。
我已经使用我的客户端小程序尝试了笔记本电脑上的服务器端小程序,它运行正常。
但是,当我将服务器端applet移动到Amazon EC2实例时,它通常会在applet上获得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?