Клубок

  • 9
  • Недоступна
1. Создай 5 различных своих нитей c отличным от Thread типом: 1.1. Нить 1 должна бесконечно выполняться; 1.2. Нить 2 должна выводить "InterruptedException" при возникновении исключения InterruptedException; 1.3. Нить 3 должна каждые полсекунды выводить "Ура"; 1.4. Нить 4 должна реализовать интерфейс
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (245)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Максим20 уровень, Черкассы
вторник, 16:29
Из условия вообще не понятно, чего от нас хотят в нити 4. Подобрал с 6 попытки Зачем нужно было проверять с помощью isAlive()? Почему бы просто не прервать..?
MartyMcAir18 уровень
4 августа, 19:17
все потоки implements Runnable кроме потока №4 (тот extends Thread) Потоки: 1) в run() пустой бессконечный цикл 2) в run() в блоке try пишем *.sleep(0); _ а в catch прям так и выводим System.out.println("InterruptedException"); _ (забавно что на это потратил 3 попытки, а надо то было просто вывести текст.. ) 3) в run() сначала выводим УРА а потом *.sleep(500) _ а иначе не пройдет 4) в run() пустой цикл в агрументах которого boolean переменная со значением true, в методе showWarning этой же переменной присваиваем false 5) в run() внутри блока try while (!Thread.currentThread().isInterrupted()) { tmp = reader.readLine(); if (tmp.equals("N")) { выводим результат.. сложения прерываем поток } result += Integer.parseInt(tmp);
Luk_d19 уровень
10 августа, 09:08
у меня все extends Thread прошли
LuneFox17 уровень, Москва
30 июля, 09:28
Оказывается, все нити принимает как есть (без запуска), а нить 4 - только если её запустить в main. 22 попытки \o/
Ольга18 уровень, Москва
29 июля, 07:17
вот не поверите, дольше всего возилась с 5 нитью, ужас
scal_v22 уровень, Москва
23 июля, 17:31
И на моей улице бывает праздник рандом
Oleh Leinov18 уровень
5 июля, 20:10
Подсказка: Нить 4 можно проверить методом isAlive() Что проверять то? Зачем тут этот метод?
Антон19 уровень, Санкт-Петербург
5 июля, 10:45
Решил 4ю нить с флагом true/false не принимало, уже дошел просто до копипаста потока из решений с флагом, все равно. Наткнулся на комментарий о том что, если наследоваться от Thread, то при запихивании в лист нужно просто новый объект класса нити создавать, а не новый объект Thread и в аргументах новый объект класса нити. То есть я делал как:
threads.add(new Thread(new thread4()))
А стоило как:
threads.add(new thread4());
Но самое нелепое - валидатор не принимал только 4ю нить, остальные все нити прошли валидацию. Так и должно быть? Наследовался во всех нитях от Thread.
Алексей20 уровень, Киев
26 июня, 19:58
Вы решили задачу лучше, чем 74% учеников. Вам удалось ее решить с 2 попытки. Среднее количество попыток для этой задачи 6.7. Всего эту задачу решили 13472 учеников. Ржач
Константин22 уровень, Москва
17 июня, 21:32
4-я нить!!! Схожая проблема как у Валерия, коммент ниже от 3 мая. Если всё реализовали на Runnable и всё работает, а валидатор не пускает 4 нитку, то просто сделайте эту 4 нитку extends Thread implements Message , и валидатор пропустит. А вот implements Runnable, Message его ещё не научили принимать. При реализации нити-4 заморачиваться не нужно. Всё просто - через boolean переменную и пустой цикл, выход из которого при смене переменной с true на false, без всяких stop() и interrupt(). Вызов метода showWarning в run() запихивать не нужно.
Egor23 уровень, Санкт-Петербург
11 июня, 22:51
Ошибся на 3 нити)) один раз всего вывел "Ура"))
Katruk Dima17 уровень
17 июня, 15:14
аналогичная ошибка и у меня задача довольно простая но длинная по работе.