Аэропорт

  • 4
  • Недоступна
1. Разберись, что делает программа. 2. Исправь метод takingOff(взлет) - сейчас он работает оооочень долго. Взлет должен занимать 100 миллисекунд. 3. Реализуй метод waiting по аналогии с методом takingOff.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (140)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
SWK
Уровень 16
15 марта, 04:55
А объяснить предварительно, что за
synchronized (this)
не нужно? Передовые методы обучения типа "смотри за мастером"? Вроде, средневековье закончилось... В комментарий
// если взлетная полоса занята самолетом
уместно было бы вставить "не этим".
Myzery
Уровень 35, Санкт-Петербург, Россия
7 апреля, 17:54
Не, не стоит. Уже которая задача, где первый пункт "разберись, что делает программа".
Grustnij Los'
Уровень 28, Санкт-Петербург, Russian Federation
24 ноября 2021, 09:29
Решить задачу конечно очень просто. Но вот ответить на 1й вопрос, так и не смог. (Либо я ... недоучился. Либо лыжи не едут)
Yuri_S Инженер-конструктор 2к.
1 января, 19:04
На первый вопрос - вроде бы все и понятно по логике, но незнакомые детали пришлось гуглить. Что такое volatile и зачем нужно делать synchronized, в частности. У меня один вопрос остался - Runway у нас это синглтон-класс чи нет.
milyasow
Уровень 30, Москва, Russian Federation
17 мая, 19:40
Singleton должен иметь приватный конструктор, и возвращать только уникальный объект своего класса. Так что нет, не Singleton.
AvalonPRO
Уровень 23, Москва
8 ноября 2021, 11:25
1) Исправляем на 100 2) копируем этот блок где он нужен.
Sergey Kornilov
Уровень 38, Petropavlovsk, Казахстан
1 ноября 2021, 14:24
Всего эту задачу решили 30249 учеников.
smart_engineer
Уровень 43, Россия
1 сентября 2021, 21:21
Ставлю пять звезд. Но код тут на мой взгляд так себе. 1. вместо методов takingOff() и waiting() можно поставить Thread.sleep(100) в нужных местах метода run() класса Plane. 2.
if (!this.equals(RUNWAY.getTakingOffPlane()))
можно вообще удалить без потери в функционале. Зачем это лишнее ветвление в случае когда мы либо ждем либо взлетаем?
Денис Измайлов Инженер- программист в CloudFactory
25 августа 2021, 12:50
Блин, ну какого роджна у вас в условии ОДНО, а в валидации другое ? "не больше чем время взлета" подразумевает не только РАВНОЕ, как в валидации, но и МЕНЬШЕЕ чем 100... %$#@%#
Виталий Работает в поте лица
4 октября 2021, 19:23
Если не усложнять решение, то подобных трудностей не будет)
MisterMisix
Уровень 36, Волжск, Russian Federation
30 октября 2021, 18:06
Тоже смутило условие - "Время ожидания не должно превышать время взлета." А в требованиях чётко - "Метод takingOff должен работать примерно 100 мс." Бред какой-то
Anonymous #2201973
Уровень 18
28 июня 2021, 09:02
Задача легкая, ну да нет ничего сложного сделать всё по пунктам и получить зачёт от валидатора. Но тема synchronized почти нигде не упоминается, а это не есть хорошо! А ведь - эта тема есть суть данной задачи.
Maksym QA Automation Engineer
3 июля 2021, 13:34
Не все сразу... Курс ведь рассчитан на новичков и мы только знакомимся с многопоточностью.
smart_engineer
Уровень 43, Россия
1 сентября 2021, 20:26
Мне кажется в квесте Java Multithreading все разъяснится. Но вообще разбираться в коде этой задачи весьма увлекательно. Что как работает вполне ясно, но до полного понимания оборотов типа synchronized (this) { this.t = t; } еще далеко...
26 апреля 2021, 07:09
Валидатор не принимает реализацию через метод join, хотя поидее время будет примерно 100мс 🤨
smart_engineer
Уровень 43, Россия
1 сентября 2021, 20:28
Конечно не принимает. Задача на метод Thread.sleep().
Nick
Уровень 20
23 апреля 2021, 04:59
1. Перед вами самолет - разберитесь как он устроен и как им управлять; 2. Разобрались? А теперь подметите у трапа мусор - да осторожней, что бы ничего не сломать!
ASY
Уровень 17
7 марта 2021, 21:35
Кто-то может разьяснить, данным кодом:
else if (!this.equals(RUNWAY.getTakingOffPlane()))
Насколько я понял, мы используемся метод equals класса родителя на обьекте класса потомка? Другой момент:
if (RUNWAY.trySetTakingOffPlane(this))
Мы используем не статический метод статического класса, то есть чтобы использовать этот метод нужен обьект этого класса, но мы его не создаём, мы вызываем метод и передаём ему в качестве параметра обьект-класса, в котором он был вызван. Я не понимаю как. Ведь мы же должны были создать обьект класса для обращения к его не статическому методу.
Dmitry Panchenko
Уровень 25, Москва, Россия
9 марта 2021, 09:56
8-я строка
public static volatile Runway RUNWAY = new Runway();   //1 взлетная полоса
ASY
Уровень 17
9 марта 2021, 19:27
Спасибо, реально не увидил)
smart_engineer
Уровень 43, Россия
1 сентября 2021, 20:44
"else if (!this.equals(RUNWAY.getTakingOffPlane()))" по моему это переводится так: если этот поток(Plane) не эквивалентен потоку в объекте RUNWAY тогда... По моему это вообще лишнее условие. False в скобках будет только в случае если в предыдущем ветвлении было trye. Достаточно одного слова else. "Ведь мы же должны были создать объект класса для обращения к его не статическому методу." объект создали перед методом main.