Зачем в правильном решении стоит проверка на то установлен ли флаг isWinnerFound == false? Ведь в случае победы у других потоков не исполняется команда по выводу победителя, так как поток ловит исключение на прерывание.
Войтов Роман
41 уровень
Зачем нужна проверка флага isWinnerFound?
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Larandvik
26 июля 2023, 01:23
Классный вопрос, я тоже об этом задумался и если я правильно понял, то:
В нашей задаче 5 тредов
1 - Main - стартует первым
2 - OnlineGame - запускаем вторым
3, 4, 5 это наши игроки.
В методе run OnlineGame, мы запускаем наших игроков
и здесь же запускаем эту "петлю времени"
while (!isWinnerFound) {
}
Другими словами:
пока (true) {
что-то делаем
}
А значит пока мы не изменим условие, дальше код не пойдёт, значит метод run треда OnlineGame не завершится
А пока он не завершится -> Main не завершится
Мне очень понравился приём 🙌
+2
Long_byte
25 февраля 2024, 11:45
поток Main запускает OnlineGame и идет дальше по своим делам
0
Average Java Enjoyer
20 апреля 2023, 18:09
Для того, что бы catch блоке вывести в консоль сообщение согласно условию
0