我想使一个服务器,可以有多个用户,即时只创建2个线程,但我的BufferedReader.readLine()似乎是使多个线程和导致OutOfMemory异常,我不明白为什么它这样做?BufferedReader.readLine()创建线程()?
功能造成例外:
public void run() {
try {
Username = Input.readLine();
} catch (IOException e1) {
disconnect();
}
String lastInput = null;
try {
while ((lastInput = Input.readLine()) != null) {
System.out.println(lastInput);
if (lastInput.startsWith("Chat: ")) {
sendToAllClients(lastInput.substring(7));
}
}
} catch (IOException e) {
disconnect();
}
}
除外:
Exception in thread "Thread-0" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source)
at java.lang.AbstractStringBuilder.append(Unknown Source)
at java.lang.StringBuffer.append(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at Main.User.run(User.java:46)
at java.lang.Thread.run(Unknown Source)
注意:用户名= Input.readLine()被使异常
你不应该吞咽这样的例外...... – Sinkingpoint
我不知道你为什么要尝试处理异常处理程序中的'lastInput' ...... – MadProgrammer