Бонусное задание | 13 лекция | 6 уровень

6 уровень, 13 лекция
Открыта

— Здорово, боец!

— Здравия желаю, товарищ капитан!

— У меня для тебя шикарная новость. Вот тебе задания для закрепления полученных навыков. Выполняй их каждый день, и твои навыки будут расти с неимоверной скоростью. Они специально разработаны для выполнения их в Intellij IDEA.

9
Задача
Java Core,  6 уровень,  13 лекция
Недоступна
Thread.currentThread - всегда возвращает текущую нить
1. В методе printMsg присвой переменной t текущую нить. 2. В методе printMsg после всех действий поставь задержку в 1 миллисекунду.
9
Задача
Java Core,  6 уровень,  13 лекция
Недоступна
Последовательные выполнения нитей
1. В методе run после всех действий поставь задержку в 10 миллисекунд. Выведи "Нить прервана", если нить будет прервана. 2. Сделай так, чтобы все нити выполнялись последовательно: сначала для нити №1 отсчет с COUNT до 1, потом для нити №2 с COUNT до 1 и т.д. Пример: #1: 4 #1: 3 ... #1: 1 #2: 4 ...
9
Задача
Java Core,  6 уровень,  13 лекция
Недоступна
Рекурсивное создание нитей
1. Измени класс GenerateThread так, чтобы он стал нитью. 2. Создай конструктор GenerateThread, который должен: 2.1. Вызвать конструктор суперкласса с параметром String - номером созданной нити. Используй createdThreadCount. 2.2. Запустить текущую нить. 2.3. Номер первой нити должен начинается с 1.
9
Задача
Java Core,  6 уровень,  13 лекция
Недоступна
Последовательные выполнения нитей
1. Разберись, что делает программа. 2. Сделай так, чтоб программа сначала выводила результат нити, а когда нить завершится - продолжила метод main. 3. Пример выходных данных: inside MyThread 0 inside MyThread 1 ... inside MyThread 9 inside main 0 inside main 1 ... inside main 9
9
Задача
Java Core,  6 уровень,  13 лекция
Недоступна
Взаимная блокировка
1. Разберись, как работает программа. 2. Не меняя классы T1 и T2 сделай так, чтобы их нити завершились, не обязательно успешно. 3. Метод sleep не использовать.
9
Задача
Java Core,  6 уровень,  13 лекция
Недоступна
Создание по образцу
Разберись, как работает программа. По образу и подобию CountdownRunnable создай нить CountUpRunnable, которая выводит значения в нормальном порядке - от 1 до number.
9
Задача
Java Core,  6 уровень,  13 лекция
Недоступна
Поиграем?
Три человека играют в игру. Каждый игрок(Gamer) характеризуется двумя параметрами: фамилией(name) и количеством действий в секунду (rating). Нужно вывести в консоль ход игры и определить победителя и проигравших. Итак... 1. Разберись, что делает программа. 1.1. List<String> steps хранит последовател
9
Задача
Java Core,  6 уровень,  13 лекция
Недоступна
Кто первый встал - того и тапки
1. Разберись, что делает программа. 1.1. Каждая нить должна читать с консоли слова. Используй готовый static BufferedReader reader. 1.2. Используй AtomicInteger readStringCount, чтобы посчитать, сколько слов уже считано с консоли всеми нитями. 2. Реализуй логику метода run: 2.1. Пока нить не прерва
9
Задача
Java Core,  6 уровень,  13 лекция
Недоступна
Только по-очереди!
1. В классе Solution создать public static класс нити Read3Strings унаследовавшись от Thread. 2. В методе run реализовать чтение с консоли трех строк. 3. Три подряд введенных строки должны считываться в одной нити и объединяться в одну строку через пробел. 4. В методе main вывести результат для кажд
9
Задача
Java Core,  6 уровень,  13 лекция
Недоступна
Последовательный вывод файлов
1. Разберись, что делает программа. 2. В статическом блоке считай 2 имени файла firstFileName и secondFileName. 3. Внутри класса Solution создай нить public static ReadFileThread, которая реализует интерфейс ReadFileInterface (Подумай, что больше подходит - Thread или Runnable). 3.1. Метод setFileNa

— Те задания были для духов. Для дедушек я добавил бонусные задания повышенной сложности. Только для старослужащих.

9
Задача
Java Core,  6 уровень,  13 лекция
Недоступна
Factory method pattern
1. Внимательно посмотри, какие классы у тебя есть. 2. В отдельных файлах в пакете common создай классы JpgReader, PngReader, BmpReader, которые реализуют интерфейс ImageReader. 3. В отдельном файле в основном пакете создай класс ImageReaderFactory с одним методом. 3.1. Подумай, как он должен называт
9
Задача
Java Core,  6 уровень,  13 лекция
Недоступна
Клубок
1. Создай 5 различных своих нитей c отличным от Thread типом: 1.1. Нить 1 должна бесконечно выполняться; 1.2. Нить 2 должна выводить "InterruptedException" при возникновении исключения InterruptedException; 1.3. Нить 3 должна каждые полсекунды выводить "Ура"; 1.4. Нить 4 должна реализовать интерфейс
9
Задача
Java Core,  6 уровень,  13 лекция
Недоступна
Отдебажим все на свете
Разобраться, что делает программа. Почитать про UncaughtExceptionHandler - это важно. Еще раз внимательно посмотреть программу. Разобраться - продебажить - почему наш OurUncaughtExceptionHandler не срабатывает. Исправить ошибку, т.е. все должно работать. :) Ожидаемый результат в произвольном порядк
Комментарии (261)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
PAVEL KRASNOV17 уровень, Архангельск
воскресенье, 09:40
"Какая гадость, какая гадость - эта Ваша заливная рыба ..." Простое объяснение
mal0hl0ra22 уровень, Москва
суббота, 10:27
Шла 20-ая минута борьбы с валидатором... 😵
mal0hl0ra22 уровень, Москва
суббота, 10:29
Ясно. Не "Thread.currentThread().getName()", а нужно было "getName()"
ram097320 уровень, Набережные Челны
18 февраля, 06:18
Всегда называйте свои потоки в многопоточных приложениях в соответствии с их функциями. Это упрощает как логирование, так и отладку.
ram097320 уровень, Набережные Челны
18 февраля, 06:03
С двумя interrupted непонятки. Код Thread.interrupted() вроде такой public static boolean interrupted() { return currentThread().isInterrupted(true); } Но на SO написано: Thread.interrupted() вдобавок к проверке снимает флаг прерывания. А thread.isInterrupted() этого не делает, плюс нестатический доступ позволяет проверять другие треды. Фактически, это еще и ограничивает возможность снять флаг прерывания у других тредов (нельзя "украсть" прерывание другого треда).
ram097320 уровень, Набережные Челны
17 февраля, 13:56
Объясните плиз в личку, почему я не могу сделать threads.get(3).showWarning(); 😀 Что-то никак не пойму. P.S. кажется понял, List<Thread> threads.get(3) - похоже даёт класс Thread, а в нём действительно нет этого метода, сужение при преобразовании в общем. Теперь осталось понять почему showWarning похоже в другом потоке, видимо по той же причине, не принадлежит Thread?
Морокеи19 уровень, Москва
18 февраля, 17:51
Этот метод нужно только реализовать в классе, не нужно его вызывать
Serhii18 уровень, Киев
11 февраля, 14:19
Последнюю решил с помощью подкорки.. надеюсь понятие придет в будущем.
Dinohrom20 уровень, Ульяновск
13 февраля, 10:09
Аналогично. Мне кажется, что в последней задаче проблема была не в сложности темы, а в извращенном коде задачи
Андрей Киров19 уровень, Екатеринбург
4 февраля, 03:58
Задачи, в целом, не сложные. Но понимания нет. Где еще можно порешать задачи, что бы понять окончательно и закрепить? Тема-то архиважная.
Елена20 уровень, Ростов-на-Дону
2 февраля, 13:23
Последнюю задачу решила с недопониманием. Подскажите, почему в консоли мы не видим сообщения для первой нити (commonThread) , ведь она тоже выкидывает Runtime.
Кирилл17 уровень, Пенза
7 февраля, 10:21
interrupt() применяется только для двух потоков threadA, и threadВ. Отдельно для commonThread этот метод не применяется.
Елена20 уровень, Ростов-на-Дону
7 февраля, 11:33
Точно! Спасибо)
Учиха Шисуи17 уровень, Новосибирск
27 января, 07:56
Как то прополз эти дебри.
СЕРГЕЙ19 уровень, Озёрск
20 января, 23:03
Оказывается! Thread.sleep(500); System.out.println("Ура"); НЕЗЯ!!! System.out.println("Ура"); Thread.sleep(500); Пол часа сидел думал и 2 попытки!!!!
Kirill Krasilnikov17 уровень, Санкт-Петербург
14 февраля, 08:08
Павел Ермишин16 уровень, Москва
17 февраля, 14:07
почему нельзя? можно, но зависит от условия