1) почему в 5 нити: если if (buff.equals("N")) вы дает ошибка NumberFormatException разве там не то же значение проверяется , что и если код(запись в переменную) if (number.equals("N")) ?
2) вообще после первого вывода суммы, консоль остается доступной для ввода, (то есть 1 2 N 3 и все еще можно вводить) задание звучит так "Нить 5 должна читать с консоли числа пока не введено слово "N", а потом вывести в консоль сумму введенных чисел." когда второй раз ввожу после N уже ничего не подсчитывается, точно ли должна была консоль остаться доступной для ввода? по заданию не могу понять вроде ничего сказано, но и break; должен был сработать соответственно ничего и не подсчитывается, но консоль все еще открыта. buff.close(); где-то надо сделать?
3) как вводить в консоль, есть там Ура вылезают?) мне приходилось раскомментировать нить с Ура...
public class Solution {
public static List<Thread> threads = new ArrayList<>(5);
public static class Thread1 extends Thread {
@Override
public void run() {
while (true) {
try {
threads.get(0).join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public static class Thread2 extends Thread {
@Override
public void run() {
try {
Thread.sleep(0);
} catch (InterruptedException e) {
e.printStackTrace();
System.out.println("InterruptedException");
}
}
}
public static class Thread3 extends Thread {
@Override
public void run() {
while (true) {
try {
System.out.println("Ура");
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public static class Thread4 extends Thread implements Message {
boolean exit=false;
@Override
public void run() {
while (!exit) {
}
}
@Override
public void showWarning() {
exit=true;
}
}
public static class Thread5 extends Thread {
@Override
public void run() {
BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));
try {
int count = 0;
while (!Thread.currentThread().isInterrupted()) {
String number = buff.readLine();
if (number.equals("N")) {
System.out.println(count);
currentThread().interrupt();
break;
}
count += Integer.parseInt(number);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
static {
threads.add(new Thread1());
threads.add(new Thread2());
threads.add(new Thread3());
threads.add(new Thread4());
threads.add(new Thread5());
}
public static void main(String[] args) {
threads.get(0).start();
threads.get(1).start();
threads.get(2).start();
threads.get(3).start();
threads.get(4).start();
}
}