Клубок

  • 9
  • Недоступна
1. Создай 5 различных своих нитей c отличным от Thread типом: 1.1. Нить 1 должна бесконечно выполняться; 1.2. Нить 2 должна выводить "InterruptedException" при возникновении исключения InterruptedException; 1.3. Нить 3 должна каждые полсекунды выводить "Ура"; 1.4. Нить 4 должна реализовать интерфейс
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (236)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Алексей17 уровень, Киев
вчера, 19:58
Вы решили задачу лучше, чем 74% учеников. Вам удалось ее решить с 2 попытки. Среднее количество попыток для этой задачи 6.7. Всего эту задачу решили 13472 учеников. Ржач
Константин18 уровень, Москва
17 июня, 21:32
4-я нить!!! Схожая проблема как у Валерия, коммент ниже от 3 мая. Если всё реализовали на Runnable и всё работает, а валидатор не пускает 4 нитку, то просто сделайте эту 4 нитку extends Thread implements Message , и валидатор пропустит. А вот implements Runnable, Message его ещё не научили принимать. При реализации нити-4 заморачиваться не нужно. Всё просто - через boolean переменную и пустой цикл, выход из которого при смене переменной с true на false, без всяких stop() и interrupt(). Вызов метода showWarning в run() запихивать не нужно.
Egor19 уровень, Санкт-Петербург
11 июня, 22:51
Ошибся на 3 нити)) один раз всего вывел "Ура"))
Katruk Dima17 уровень
17 июня, 15:14
аналогичная ошибка и у меня задача довольно простая но длинная по работе.
Svetlana17 уровень, Санкт-Петербург
8 июня, 15:31
Непонятно, почему для 4-ой нити, чтобы валидатор принял решение, нужно использовать deprecated метод - stop. Все то же самое с interrupt не работает.
Egor19 уровень, Санкт-Петербург
11 июня, 22:52
Я сделал с boolean переменной и interrupt..
Андрей Кутиль19 уровень, Киев
6 июня, 22:06
Блин, из за не внимательности столько по пыток угробил...
Ярослав Неило20 уровень, Киев
5 июня, 12:04
"1.4. Нить 4 должна реализовать интерфейс Message, при вызове метода showWarning нить должна останавливаться;" - данное условие не значит, что в run() нужно делать вызов showWarning. Будьте внимательны ;)
Po4ercoved18 уровень, Санкт-Петербург
3 июня, 19:27
У кого-нибудь получилось проверить в main как работает showWarning()? threads.get(3).showWarning(); не работает... а валидацию проходит.
Антон23 уровень, Санкт-Петербург
5 июня, 11:00
Обрати внимание на тип элементов в листе.
Антон23 уровень, Санкт-Петербург
10 июня, 12:08
Правильно - тип Thread. Т.е. в листе threads лежат экземпляры классов - наследников от Thread. В том числе и MessageThread, который еще реализует интерфейс Message. Но их тип - Thread, а у Thread нет метода showWarning(). Я думаю вам нужно повторить темы про сужение/расширение типов и тогда все встанет на свои места.
Po4ercoved18 уровень, Санкт-Петербург
14 июня, 10:53
Интересно. Получается расширять нити (классы унаследованные от Thread) реализуя интерфейсы бессмысленно? Зачем вообще тогда реализовывать интерфейс Message если его методами пользоваться нельзя? Или все таки есть способ?
Антон23 уровень, Санкт-Петербург
16 июня, 08:33
Можно, преобразовав его к MessageThread, например так - ((MessageThread)threads.get(index)).showWarning(). Но мы должны быть уверено, что преобразование корректно.
Po4ercoved18 уровень, Санкт-Петербург
16 июня, 10:56
Для тех кто так-же втупляет как я)) - если ссылка типа Thread, то и методы только от Thread; - если ссылка типа Message то и метод только showWarning(); - если ссылка типа самого класса MessageThread то все методы и от Thread и от Message. Поправьте если, что не так.
Po4ercoved18 уровень, Санкт-Петербург
16 июня, 11:33
Спасибо. Немного разобрался. Этот вариант работает только если создать ссылку MessageThread. MessageThread mt = ((MessageThread)threads.get(3)); mt.showWarning();
Павел31 уровень, Москва
31 мая, 12:42
2-ю и 4-ю нить валик никак не хочет принимать. Подскажите во 2-й ните в блоке try что писать?
Александр22 уровень, Санкт-Петербург
24 мая, 18:37
Максимально идиотская задача. Я,конечно, извиняюсь за спойлер, но "Отличный от Thread тип" это, оказывается, extends Thread, а не implements Runnable
Константин18 уровень, Москва
17 июня, 21:08
+1 Из-за этого делал всё на Runnable.
Павел19 уровень, Санкт-Петербург
24 мая, 16:52
я тут единственный,, кто прочитав комменты, все равно ничего не понял и пошел в готовые ответы разбираться??
Павел19 уровень, Санкт-Петербург
24 мая, 16:55
и еще вопрос, обязательно ли для каждой нити создавать свой отдельный класс, как то более цивилизованно можно обойтись без раздутости?