При решении выводит данные, но не проходит по 2 пунктам:
1. Метод run должен считывать строки из reader и добавлять их в список result.
2.Метод run должен после каждого считывания увеличивать счетчик прочитанных строк readStringCount на 1.
Подскажите, пожалуйста, где ошибка...
package com.javarush.task.task16.task1628;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
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(); // создаем 3 нити
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() {
while (! isInterrupted()) {
try {
result.add(reader.readLine());
} catch (IOException e) {
e.printStackTrace();
}
readStringCount.incrementAndGet();
}
//add your code here - добавьте код тут
}
@Override
public String toString() {
return result.toString();
}
}
}