我编写了一个带有多个线程的小服务器。很多小时后(据说目前我无法重现该问题)服务器停止工作。我的代码看起来像这样。
线程2:
while(true)
{
System.out.println("Point 1");
Socket abc = serverSocket.accept();
System.out.println("Point 2");
connection = true;
}
Thread1 在 Thread.sleep(1000) 循环中等待并检查连接是否为真。如果是这样,它开始工作,否则它打印“等待”。如果连接中止,它将连接设置为假。
现在我的主程序连接到服务器。服务器打印等待等待(依此类推,直到建立连接)点 1 点 2 应该如此。
现在经过几个小时的运行,我的客户端仍然可以连接,它说连接已建立(通过 clientSocket = new Socket(inetAddress,Integer.parseInt(port)); 假设在此命令成功时无异常建立连接)。
在运行 Thread1 几个小时后,无论我与客户连接的频率如何,都只会打印“等待”、“等待”。我被它难住了,因为它只有在运行多个小时后才会发生。Java 版本是 java 版本 "1.7.0_07" Java(TM) SE Runtime Environment (build 1.7.0_07-b10) 此版本是否有任何已知问题或错误在哪里?任何线索如何重现错误?
感谢帮助。