Эту задачу можно решить двумя макарами оформив нити. Один из них она не примет. НО работать будет и так и так. Вопрос в чем отличие и как делать правильнее. Так как в материале вроде говорили что для каждой нити лучше создать свою нить через Thread t = new Thread(лин на то что создаешь нить); Я и сделал, но хотят что бы сразу линками на объект управлялся без так сказать промежуточных нитей.
Read3Strings t1 = new Read3Strings();
Read3Strings t2 = new Read3Strings();
//add your code here - добавьте код тут
t1.start();
t1.join();

t2.start();
t2.join();

t1.printResult();
t2.printResult();
а можно и так
Read3Strings t1 = new Read3Strings();
       Read3Strings t2 = new Read3Strings();
       //add your code here - добавьте код тут
       //Thread n1 = new Thread(t1);
       //Thread n2 = new Thread(t2);

       n1.start();
       n1.join();

       n2.start();
       n2.join();

       t1.printResult();
       t2.printResult();