Я не понимаю. Кучу попыток уже убил на четвертую нить, она не проходит даже если я копирую решения у других. Что не так?
Вот так я тоже пробовал :
1. Создай 5 различных своих нитей (наследников класса Thread):
1.1. Нить 1 должна бесконечно выполняться;
1.2. Нить 2 должна выводить "InterruptedException" при возникновении исключения InterruptedException;
1.3. Нить 3 должна каждые полсекунды выводить "Ура";
1.4. Нить 4 должна реализовать интерфейс Message, при вызове метода showWarning нить должна останавливаться;
1.5. Нить 5 должна читать с консоли числа пока не введено слово "N", а потом вывести в консоль сумму введенных чисел.
2. В статическом блоке добавь свои нити в List<Thread> threads в перечисленном порядке.
3. Нити не должны стартовать автоматически.
Подсказка: Нить 4 можно проверить методом isAlive()
Требования:
Статический блок класса Solution должен создавать и добавлять 5 нитей в список threads.
Нити из списка threads не должны стартовать автоматически.
Нить 1 из списка threads должна бесконечно выполняться.
Нить 2 из списка threads должна выводить "InterruptedException" при возникновении исключения InterruptedException.
Нить 3 из списка threads должна каждые полсекунды выводить "Ура".
Нить 4 из списка threads должна реализовать интерфейс Message, при вызове метода showWarning нить должна останавливаться.
Нить 5 из списка threads должна читать с консоли числа пока не введено слово "N", а потом вывести в консоль сумму введенных чисел.
....
package com.javarush.task.task16.task1632;
public interface Message {
void showWarning();
}
0
Комментарии (8)
популярные
новые
старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
У меня не прошло, пока по-нормальному не создала нити
Clasa1 t1 = new Clasa1();
threads.add(t1);
Clasa2 t2 = new Clasa2();
threads.add(t2);
и т.д. ....
public static class Clasa1 extends Thread { ...
}
В верхнем квадратике , наверное у метода showWarning не нужно писать @Override. Я так поняла, что это собственный метод, а не переопределенный, хотя конечно прямо это не сказано в условии.
А в методе run после условия while (!this.isInterrupted()) не выделен пустой блок { }
У вас нить реализована почти как в этом решении https://javarush.com/help/11834, но там в объявлении переменной тип boolean, без "private static volatile". Такое решение валидатор принимает
Спасибо. Весь мозг сломал. Реально если run() выше showWarning() Валидатор не пускает и пишет ошибку. Встрять можно конкретно и запутаться, а тут на самом деле все вот настолько просто