Почему последний пункт не пропускает валидатор, ведь потоки выполнены последовательно. Или я не уловил логику работы программы?
package com.javarush.task.task16.task1629;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Только по-очереди!
*/
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();
t1.start();
t1.join();
t2.start();
t2.join();
t1.printResult();
t2.printResult();
}
public static class Read3Strings extends Thread {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String>list = new ArrayList<>();
public void run() {
int i = 0;
String s;
try {
while(i < 3) {
s = reader.readLine();
list.add(s);
i++;
}
Thread.currentThread().interrupt();
} catch (IOException e) {
e.printStackTrace();
}
}
public void printResult(){
for(int i = 0; i < list.size(); i++){
System.out.print(list.get(i) + " ");
}
System.out.println();
}
}
}