Есть ли простой способ пропустить метод readLine() в java, если он занимает больше времени, скажем, 2 секунды?
Вот контекст, в котором я задаю этот вопрос:
public void run()
{
boolean looping = true;
while(looping) {
for(int x = 0; x<clientList.size(); x++) {
try {
Comm s = clientList.get(x);
String str = s.recieve();
// code that does something based on the string in the line above
}
// other stuff like catch methods
}
}
}
Comm — это класс, который я написал, и метод получения, который содержит BufferedReader с именем «in», таков:
public String recieve()
{
try { if(active) return in.readLine(); }
catch(Exception e) { System.out.println("Comm Error 2: "+e); }
return "";
}
Я заметил, что программа останавливается и ждет, пока входной поток будет что-то читать, прежде чем продолжить. Что плохо, потому что мне нужно, чтобы программа продолжала зацикливаться (когда она зацикливается, она обращается ко всем другим клиентам и запрашивает ввод). Есть ли способ пропустить процесс readLine(), если читать нечего?
Я также почти уверен, что плохо объясняю, поэтому, пожалуйста, задавайте мне вопросы, если я путаю.