User hubert
hubert
41 уровень

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

Статья из группы Архив info.javarush.ru
Уровень 25: план уровня и доп. материалы - 1План уровня:
  • Enum, все особенности
  • Thread Life Cycle, состояние объекта Thread
  • Все нюансы создания и запуска новой нити, демоны.
  • Все нюансы прерывания/остановки нитей
  • Стек вызовов и перехват ошибок
  • Другие методы класса Thread (sleep, yield...)
Курс Java Что еще можно посмотреть на досуге: Ответы на вопросы к собеседованию по теме уровня Еще несколько полезных материалов по enumeration. О многопоточности в Java Пособие для будущего Java разработчика. Enterprise — часть 1 Advanced Java - Concurrency
Нашли классную ссылку к материалу данной темы? Добавьте ее сюда в виде комментария. Возможно, именно Ваша ссылка поможет другому человеку стать программистом и улучшить свою жизнь! Вернуться к обучению java онлайн на JavaRush
Комментарии (18)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Пьер Дун Уровень 31, Алматы, Казахстан
20 апреля 2019
извините, я не знаю украинский (или чо там за язык, хз), не могу юзать первую ссылку
Rihard1985 Уровень 33, Россия Master
20 августа 2018
у этого парня на видео слишком большие уши((
apollox Уровень 40, Москва, Россия
11 мая 2017
У меня есть непонятка с ENUM.
По лекции,
public enum Direction
{
UP,
DOWN,
LEFT,
RIGHT,
}
компилятором преобразуется в примерно это:
public final class Direction extends Enum
{
public static final Direction UP = new Direction();
public static final Direction DOWN = new Direction();
public static final Direction LEFT = new Direction();
public static final Direction RIGHT = new Direction();

private Direction() {} //приватный конструктор
}
Тут все понятно.
У нас есть статические переменные, в каждой из которых хранится ссылка на объект Direction.

А непонятно вот что.
Приватный конструктор Direction должен вызвать конструктор суперкласса, т.е. енума.
Но у него есть только конструктор с параметрами:
protected Enum(String name, int ordinal) {
this.name = name;
this.ordinal = ordinal;
}
А это значит, что мы должны в нашем конструкторе вызвать конструктор суперкласса с параметрами, но этого нет…
И непонятно, как каждый из объектов new Direction() получает названия констант (UP и так далее), как они передаются? Т.е как допустим первый new Direction() получает в name ENUM'a этот самый «UP», который мы можем позже вывести переопределенным toString()?
Corwin Уровень 25, Москва, Россия
10 апреля 2017
Иллюстрация из данной ссылки думаю будет более точная.
Evgenym Уровень 27, Санкт-Петербург, Россия
16 февраля 2017
Вот тут небольшая обзорная полезная статья о многопоточности.
Nicson777 Уровень 27, Беларусь
11 октября 2016
С какого уровня следует начинать знакомиться с enterprise?
DefNeo Уровень 36, Россия
12 августа 2016
Видео повторяется.
alexand Уровень 41, Нижний Новгород, Россия
1 августа 2016
Остался не понятным метод yield().
Описание из лекции:
yield() – текущая нить «пропускает свой ход». Нить из состояния running переходит в состояние ready, а Java-машина приступает к выполнению следующей нити. Состояния running & ready – это подсостояния состояния RUNNABLE.
Вот что по этому поводу у Эккеля написано:
Если вы знаете, что в текущей итерации run() сделано все необходимое, вы можете подсказать механизму планирования потоков, что процессором теперь может воспользоваться другой поток. Эта подсказка (не более чем рекомендация; нет никакой гарантии, что планировщик потоков «прислушается» к ней) воплощается в форме вызова метода yield(). Вызывая yield(), вы сообщаете системе, что в ней могут выполняться другие потоки того же приоритета.

Моя версия JVM подтверждает версию именно Эккеля. Более того, вторая задача 11 лекции вообще не так работает как ожидает валидатор. Ошибка в лекции?
OctoTad Уровень 31, Россия
10 июня 2016
Кто-нибудь может подсказать КАК работает метод isAlive() «под капотом», а не ЧТО он делает? Единственное что нашел, это исходный код из пакета java.util.Thread, это:

public final native boolean isAlive();

Может где-то ещё посмотреть нужно?
OctoTad Уровень 31, Россия
5 июня 2016
В своё время эта статья помогла разобраться с блокировками и перехватом InterruptedException.