Задачу решил, но суть не понял
Как связаны поток
public static volatile BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
и потоки
ReaderThread consolReader1 = new ReaderThread();
ReaderThread consolReader2 = new ReaderThread();
ReaderThread consolReader3 = new ReaderThread();
Эти три потока обращаются к reader и считывают из него данные?