Отсчет на гонках

  • 18
  • Недоступна
1. Разберись, что делает программа. 2. Реализуй логику метода run так, чтобы каждую секунду через пробел выдавался отсчет начиная с numSeconds до 1, а потом слово [Марш!] (см примеры). 3. Если нить работает 3.5 секунды или более, прерви ее методом interrupt и внутри нити выведи в консоль слово [Пр
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (375)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Artem Sokolov Android Developer в Oracle
22 июля, 20:09
С первых шагов наброски кода валидатор указывал на non-atomic операции numSecond--. Здесь пришлось читать и искать, как итог выяснил что здесь может сделать synchronized(). Далее работа в цикле пока (!isInterrupted()) и numSecond-- и если дошёл до нуля, то return c "Марш!" в заключении, иначе цикл break в блоке catch с "Прервано!" в заключении. Решение совершенно другое в сравнении с решением от JavaRush, но верное и с первой попытки :)
LeX
Уровень 17, Thailand
около 6 часов назад
За - synchronized(), СПАСИБО! 👍
Сергей
Уровень 26, Москва, Россия
10 июля, 13:41
На меня это не похоже, задачу с уровнем сложности HARD решил с первого раза. Помогло гугление нашел тему "уменьшение int каждую секунду" https://question-it.com/questions/170530/umenshenie-int-s-10-do-0-kazhduju-sekundu-v-java Но мое решение условно отличается от правильного решения. Может мой коммент кому-то поможет.
papsnaz
Уровень 28, Самара, Russian Federation
30 июня, 18:30
Работаем😎
Андрей
Уровень 18, Санкт-Петербург
19 июня, 17:50
Посмотрел верное решение от javarush - условие не особо с ним совпадает....
Oss Osip
Уровень 28, minsk, Belarus
15 июня, 13:38
Задача на самом деле не сложная, главное не спеша думайте, смотри в классе создан конструктор, start(); который не давал мне нормально завершать цикл ибо я использовал лекцию делая по шаблону создавая дочернию нить. в run я думал изначально попробовать без ифа, но не стал рисковать как только вижу в условиях "если" сразу в галазах мой любимый оператор "if" логика простая пишу if ( num == 3) создаю внтури цикл и прохожу по всему что меня просят, но у меня замешательство появилось с if(num == 4) нить работает 3.5 секунды правильно? ну так вот в условиях вывод при If(num ==4) (4,3,2,1 прервано!) ну и соотввественно каждую секунду у нас происходит вывод в течение 3.5 секунд я не стал ничего выдумать хотя я верю , что можно было все сделать по профессиональному просто у меня прерывался цикл (4,3,2,прервано) в соуте я добавил ( "1" + " " + "Прервано") думал не пройдет а по итогу все прошло)) осталось взглянуть на правильно решение
Blynchik Работает в Pegas Touristik
8 июня, 05:49
в методе run засунул в блок catch вывод "Прервано!" и return. После цикла в методе run вывод "Марш!". Получается, если словили исключение пишем Прервано и ничего не делаем, если исключения не было, то после цикла с выводом секунд пишем Марш. Все отлично работает, нет никаких ифов
Buenos
Уровень 43, Минск, Беларусь
20 мая, 05:43
Такое вот приводит в замешательство ))
MapXyZ
Уровень 34, Минск, Belarus
3 мая, 14:45
тот случай когда не заметил что numSeconds уже объявлена.
Anonymous #3036451
Уровень 31, Falls Church, United States
28 апреля, 13:40
Не проходит проверку:
if (clock.isAlive())
Проходит проверку:
if (!clock.isInterrupted())
🤪
Олег
Уровень 33, Москва, Russian Federation
23 апреля, 08:15
Максимально тупая валидация в этой задаче и такое же чудное условие.