JavaRush/Java блог/Архив info.javarush/Уровень 16: план уровня и доп. материалы
hubert
41 уровень

Уровень 16: план уровня и доп. материалы

Статья из группы Архив info.javarush
участников

План уровня:

  • Знакомство с нитями: Thread, Runnable, start, join, interrupt, sleep
  • Знакомтво с нитями
  • 2 пособа создания нитей
  • Создание своей нити - метод start()
  • Методы sleep, join, interrupt
  • Способы завершить нить
  • InterruptedException
На этом уровне трэды рассматриваются поверхностно. Детальное углубленное изучение будет на 25-28 уровнях. Курс Java

Что еще можно посмотреть на досуге:

Наш джаварашовец написал статью "Как себя мотивировать". Хорошая статья получилась, прочтите обязательно.

Нашли классную ссылку к материалу данной темы? Добавьте ее сюда в виде комментария. Возможно, именно Ваша ссылка поможет другому человеку стать программистом и улучшить свою жизнь! Вернуться к плану обучения Вернуться к обучению java онлайн на JavaRush
Комментарии (31)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Константин
Уровень 23
9 января 2021, 14:48
http://java-course.ru/articles/exceptions/ про UncaughtExceptionHandler
Евгений
Уровень 22
20 августа 2018, 18:16
В работе часто приходится иметь дело с UncaughtExceptionHandler?
MariaM
Уровень 24
28 сентября 2016, 12:24
в ссылке на главу книги пропущена буква i в слове index =) Если поправить, открывается оглавление, откуда легко выйти на любую главу
Druha
Уровень 31
6 ноября 2020, 10:45
Спасибо, но всё-равно не помогло. "Параллельное выполнение" в Thinking in Java - google helps
MariaM
Уровень 24
24 августа 2016, 19:58
Кто читал и разбирал примеры в Философии Java подскажите пожалуйста, почему в примере на перехват исключений (так и называется параграф «Перехват исключений» в гл. Параллельное выполнение) может выводиться в консоль все в двойном экземпляре (в книге не так). Код вот здесь (проверила несколько раз, вроде все верно). Не понимаю, когда и почему создается второй тред.

Вывод такой:

ekkel.concurrency.ExceptionHandler.HandlerThreadFactory@5bf6b81c creating new Thread
created Thread[Thread-0,5,main]
eh = ekkel.concurrency.ExceptionHandler.MyUncaughtExceptionHandler@1e235551
run() by Thread[Thread-0,5,main]
eh=ekkel.concurrency.ExceptionHandler.MyUncaughtExceptionHandler@1e235551
ekkel.concurrency.ExceptionHandler.HandlerThreadFactory@5bf6b81c creating new Thread
created Thread[Thread-1,5,main]
eh = ekkel.concurrency.ExceptionHandler.MyUncaughtExceptionHandler@3088890d
caught java.lang.RuntimeException
svorobei
Уровень 35
25 января 2016, 19:30
Кое-что осталось непонятным. Получается нить может завершаться сама по себе даже если ее перед этим интерапнуть из main? не раз встречались задачи, где уже нить должна была закончить свое выполнение, а она все выводила и выводила. confused ::(
ab_random
Уровень 31
3 января 2016, 02:35
Задача level16.lesson05.task03 не работает по умолчанию.
Обнаружил сегодня интересную особенность задачи. При значении параметра soundsInOneSpeech от 1 000 000 и выше ( при 100 000 работает нормально, между ними — не пробовал), главный процесс не останавливается (рис. 1). Если в дочерних потоках обозначить их завершение (рис. 2), то можно увидеть, что они закончили свою работу, а главный поток продолжает выполняться.

Но стоит добавить в цикл главного потока любую операцию вывода (рис. 3) (закомментированный вариант использовался при отладке), как программа сразу же начинает корректно отрабатывать и завершаться.

Так вот, кто может объяснить, ПОЧЕМУ так происходит? Спасибо.

P.S. На борту Windows 7 Корпоративная 64 бита, Идея 15.0.2, jdk 1.8.0_65
рис. 1рис. 2рис. 3
ab_random
Уровень 31
4 января 2016, 14:14
P.S. Я понял, но немного не туда написал, но кнопки «Удалить комментарий» не увидел.
Kiranatos
Уровень 32
14 декабря 2015, 04:02
В перерывах на работе читаю главу «Параллельное выполнение» в Thinking in Java. Дочитываю до раздела 1.8 Потоки-демоны.
"… Если поток является демоном, то все потоки, которые он производит, также будут демонами..."
Мы точно программирование изучаем?
XD)))))))))))))))))))))

Hail Java !!!
mfomel
Уровень 17
5 июля 2015, 19:10
Кто-нибудь, поделитесь, пожалуйста, ссылкой на хорошее описание UncaughtExceptionHandler.
Ivan
Уровень 41
3 сентября 2018, 18:10
Есть хорошая книга Java Concurrency In Practice один из авторов Brian Goetz по многопоточности на английском языке. Вот из нее по поводу UncaughtExceptionHandler(стр. 101): The previous section offered a proactive approach to the problem of unchecked exceptions. The Thread API also provides the UncaughtExceptionHandler facility, which lets you detect when a thread dies due to an uncaught exception. The two approaches are complementary: taken together, they provide defense indepth against thread leakage. When a thread exits due to an uncaught exception, the JVM reports this event to an application provided UncaughtExceptionHandler (see Listing 7.24); if no handler exists, the default behavior is to print the stack trace to System.err. Before Java 5.0, the only way to control the UncaughtExceptionHandler was by subclassing ThreadGroup. In Java 5.0 and later, you can set an UncaughtExceptionHandler on a per thread basis with Thread.setUncaughtExceptionHandler, and can also set the default UncaughtExceptionHandler with Thread.setDefaultUncaughtExceptionHandler. However, only one of these handlers is calledfirst the JVM looks for a per thread handler, then for a ThreadGroup handler. The default handler implementation in ThreadGroup delegates to its parent thread group, and so on up the chain until one of the ThreadGroup handlers deals with the uncaught exception or it bubbles up to the toplevel thread group. The top level thread group handler delegates to the default system handler (if one exists; the default is none) and otherwise prints the stack trace to the console.
mTihiy
Уровень 41
31 марта 2015, 15:29
sleep().
«Цель этого метода, чтобы программа «заснула» на некоторое время.»
Такая формулировка из лекции заставила долго ломать голову над задачей: level16.lesson10.task02.
Cчитаю, что данную формулировку из лекции стоит скорректировать. Ведь sleep() усыпляет не программу, а текущий тред. Тред, в котором вызван sleep().
Call_Me_Amigo
Уровень 20
29 марта 2015, 22:20
Если читать лекции профессора, то и состариться недолго(((
Call_Me_Amigo
Уровень 20
30 марта 2015, 14:05
Кстати, ссылка на главу книги не работает.
Kolobok
Уровень 20
30 марта 2015, 14:56