public MyThread(ThreadGroup group, String name) { super(group, name); if (numberPriority.get() > MAX_PRIORITY) { numberPriority.set(1); } /*if (group.getMaxPriority() < getPriority()) { setPriority(group.getMaxPriority()); } else { setPriority(numberPriority.get()); numberPriority.getAndIncrement(); }*/ setPriority(numberPriority.get()); System.out.println(getPriority()); numberPriority.getAndIncrement(); } Вот рабочий код прошедший валидацию, но почему он работает и дебаг проводил, так и не понял. Суть задачи создавая трэд с группой трэдов в которой он есть, вводить такой приоритет для трэда который не будет превосходить максимальный для группы. И так получается в данном куске кода, что работает все даже без той части что закомментирована. Для группы данной здесь максимальный приоритет 7, а здесь вводятся setPriority(numberPriority.get()) значения и 8 и 9 и 10, но System.out.println(getPriority()) показывает при значениях которые устанавливаютя в set от 8 и выше, все равно 7. Почему?! Или если изначально установлено group.setMaxPriority(7), то если заполнять трэдами приоритетами выше 7 в данном случае, например setPriority(10), то все равно приоритет трэда автоматически становится максимальным, то есть 7 для текущей группы. Тогда смысл задачи эту дополнительную проверку делать, когда механизм и так встроен.