подскажите, пожалуйста, решил задачу и посмотрел в обсуждение задачи решения других ребят - все решали через ready(), я сделал через условие. в чем отличие этого решения от ready() и считается ли что я решил задачу? просто я всего лишь проверил на то, является строка null или нет, потому что закрытый readLine() может вернуть null, а остальные ребята проверяли на занятость reader, как я понял, и на его зависание (занятость другими потоками) а еще не знаю, нужно ли вообще было это условие на null, ведь по сути ничего не изменилось - все работало без него, просто валидатор не принимал решение
public class Solution {
    public static volatile AtomicInteger readStringCount = new AtomicInteger(0);
    public static volatile BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[] args) throws IOException {
        //read count of strings
        int count = Integer.parseInt(reader.readLine());

        //init threads
        ReaderThread consolReader1 = new ReaderThread();
        ReaderThread consolReader2 = new ReaderThread();
        ReaderThread consolReader3 = new ReaderThread();

        consolReader1.start();
        consolReader2.start();
        consolReader3.start();

        while (count > readStringCount.get()) {
        }

        consolReader1.interrupt();
        consolReader2.interrupt();
        consolReader3.interrupt();
        System.out.println("#1:" + consolReader1);
        System.out.println("#2:" + consolReader2);
        System.out.println("#3:" + consolReader3);

        reader.close();
    }

    public static class ReaderThread extends Thread {
        private List<String> result = new ArrayList<String>();

        public void run() {
            //add your code here - добавьте код тут
            while(!Thread.currentThread().isInterrupted()){
                try {
                    String s = reader.readLine();
                    if(s == null)
                        throw new IOException() ;
                    readStringCount.getAndIncrement();
                    result.add(s);
                }
                catch (IOException ignored){

                }
            }

        }

        @Override
        public String toString() {
            return result.toString();
        }
    }
}