Всем привет. Поясните, кто-нибудь:
если назначаю приоритет через this - все работает отлично. (задачу я решил).
Если через Thread.currentThread - то отсчет начинается с 5 (с обычного приоритета), потом все отсчитывает нормально 1,2,3 и т.д.
Отчего так?
Решение приложить не могу, так как задача решена. В решении все как у всех - static AtomicInteger, в каждом конструкторе проверка на превышение максимального приоритета и там, где есть в конструкторе группы, проверка на превышение максимального приоритета группы.
Александр
32 уровень
this или Thread.currentThread
Обсуждается
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #2322530
31 июля 2020, 11:20
я думаю, потому что this это конкретный объект, ты ему задаешь приоритет 1 в момент создания. и созданный объект возвращается с приоритетом 1
ведь вначале отрабатывает new MyThread() , что вернет некий объект, а у него уже вызовется getPriority().
а используя Thread.currentThread, это уже во время выполнения. потому объект вначале вернулся со стандартным приоритетом, а потом уже отработал currentThread и изменился на правильный.
PS. там как я понял можно решить через нестатический блок. быстро и эффективно
0