Подскажите пожалуйста, если в моем коде, где стоит комментарий:
// System.out.println("#######");
раскомментировать код или написать другой какой-либо код, то reader.ready() всегда будет false!
Почему? Объясните пожалуйста.
package com.javarush.task.task16.task1629;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
Только по-очереди!
*/
public class Solution {
public static volatile BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) throws InterruptedException {
Read3Strings t1 = new Read3Strings();
Read3Strings t2 = new Read3Strings();
//add your code here - добавьте код тут
t1.start();
t1.join();
t2.start();
t2.join();
t1.printResult();
t2.printResult();
}
//add your code here - добавьте код тут
public static class Read3Strings extends Thread {
private StringBuffer result = new StringBuffer();
private int count = 3;
public void run() {
while (true) {
try {
synchronized (reader) {
if (reader.ready()) {
result.append(reader.readLine()).append(" ");
if (--count == 0) {
result.deleteCharAt((result.length() - 1));
break;
}
}
// System.out.println("#######");
}
// System.out.println("#######");
} catch (IOException e) {
e.printStackTrace();
System.out.println("Что-то пошло не так.");
break;
}
// System.out.println("#######");
}
}
public void printResult() {
System.out.println(result.toString());
}
}
}