1. Разберись, что делает программа.
1.1. Каждая нить должна читать с консоли слова. Используй готовый static BufferedReader reader.
1.2. Используй AtomicInteger readStringCount, чтобы посчитать, сколько слов уже считано с консоли всеми нитями.
2. Реализуй логику метода run:
Кто первый встал - того и тапки
- 18
Недоступна
Комментарии (488)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
rogueGodname
3 июня, 06:35
while (count > readStringCount.get()) {
}
Для всех кто, как и Я сидел думал над этой конструкцией ("зачем Ты тут, брат?!"). Она нужна для того, чтобы не дать уйти основному потоку main вниз до методов interrupt, пока ваши нити корректно не запишут данные из консоли в свои коллекции. Блок while, когда примет форму false из-за переменной "счетчика" readStringCount даст возможность потоку пойти вниз до методов interrupt побочных нитей. До этого момента, пока блок while дает true программа будет "висеть" на этом моменте
0
Abouk
5 мая, 14:11
какой смысл заложен в части кода: while (count > readStringCount.get()) {
} в задаче 1628?
+1
Stanislav
13 мая, 13:52
считать столько строк, сколько указали в
0
Abouk
5 мая, 14:10
какой смысл заложен в части кода: while (count > readStringCount.get()) {
} ?
0
Suzuya Jūzō
25 апреля, 15:38
Самое корректное решение и объяснение тута
+3
Михаил Java Developer
15 апреля, 19:42
Вы решили задачу лучше, чем 15% учеников. Вам удалось ее решить с 4 попытки. Среднее количество попыток для этой задачи 2.71. Всего эту задачу решили 29363 учеников. Ваша награда: x18
0
Anonymous #3232154
5 апреля, 15:17
В чем смысл задачи? что это программа должна делать и какой результат получать?
задачу решил, но смысла ее вообще не понял. Просто по пунктам прошелся, а что она делает вообще не ясно
0
Анна
27 апреля, 11:54
познакомить с классом AtomicInteger. Инкрементация не атомарная операция, а операция разбитая на маленькие составляющие. А класс AtomicInteger позволяет сделать ее атомарной.
0
Alex
31 марта, 18:38
Теперь я понял зачем нужен метод ready(). Пока поток занят другой нитью, он будет показывать false. И соответственно в алгоритме задачи будет возвращаться к проверке на флаг прерывания. Т.е. по аналогии с магазином: кто-то встает в очередь и стоит до упора, а кто-то покупает только без очереди, но магазин может закрыться.
+2
LukasKeyn
16 марта, 13:25
смысла в задаче не понял. Что правильное решение, что свое - одна дичь несуразная, написанная тупо по пунктикам.
+1
Gans Electro
11 марта, 22:43
+7
Denys SukhoivanExpert
13 марта, 11:31
очень помог ваш комментарий)
+1
Gans Electro
14 марта, 05:50
Тебе передают спасибо
ChatGPT: Благодарю за передачу благодарности! Я всегда рад помочь. Если у вас есть какие-либо вопросы или проблемы, не стесняйтесь спрашивать!
0
very junior java developer www.codewars.com/r/TTH6EQ
5 марта, 12:41
Если у кого то не закрывается после вывода значений, программа продолжает принимать значения и только после ввода нескольких закрывается ниже решения без синхронизаций и т.д. а то только с тем что уже изучали по курсу:
P.S. валидатор программа пройдёт даже без этой фичи.... грубо говоря, если вы скопируете правильное решения, там тоже будет запрашивать ввод строк уже после вывода... короче опубликовал для пытливых)) +5