Задачу решил заполняя каждый из конструкторов необходимыми действиями. Вопрос: Как решить ее с использованием нестатического блока инициализации? У меня так и не получилось извлечь установленный у ThreadGroup в методе main() приоритет. Если научите, как это сделать буду премного благодарен.
Александр Колосов
1 уровень
Нестатический блок инициализации
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Виталик
27 февраля 2019, 19:02решение
private static int count = MIN_PRIORITY;
{
if (count > MAX_PRIORITY) count = MIN_PRIORITY;
setPriority(count++);
}
Я ее сам долго решал. Но главное чтобы count была static. А фигурные скобки где прописанное условие - является не статическим блоком инициализации.
Статический пишется:
static { }
+8
Александр Колосов
28 февраля 2019, 08:23
Виталий, благодарю. Про не статический блок я и писал. А вот насчет решения - я видимо упускаю что-то очень важное. Смотрю на него и не могу понять, как оно работает. Ладно, условие без установленного приоритета проходит - с этим все понятно. Но как с установленным приоритетом? Совершая setPriority(count++) должно устанавливаться значение count. А этого не происходит. Наверное потому, что нельзя установить приоритет одной нити бОльшим, чем максимальный приоритет группы.
Написал ответ и кажется, что понял ))). Еще раз, спасибо.
+1
Виталик
2 марта 2019, 16:16
Пожалуйста.)
Главное, что ты разобрался.
0