Собственно, вывод верный, проверял на создании большего количества нитей, проблем нет.
Приоритет всегда будет от 1 до 10 и никак за пределы не вылетает.
При создании используется static, который в конструкторе 1 раз увеличивается.
package com.javarush.task.task28.task2805;
import java.util.concurrent.atomic.AtomicInteger;
public class MyThread extends Thread{
private static AtomicInteger start = new AtomicInteger(Thread.MIN_PRIORITY);
public MyThread() {
int priority = start.getAndIncrement();
if (priority > Thread.MAX_PRIORITY) priority %= Thread.MAX_PRIORITY;
if (priority == 0) priority = Thread.MAX_PRIORITY;
setPriority(priority);
}
public MyThread(Runnable target) {
super(target);
}
public MyThread(ThreadGroup group, Runnable target) {
super(group, target);
}
public MyThread(String name) {
super(name);
}
public MyThread(ThreadGroup group, String name) {
super(group, name);
int priority = start.getAndIncrement();
if (priority > Thread.MAX_PRIORITY) priority %= Thread.MAX_PRIORITY;
if (priority == 0) priority = Thread.MAX_PRIORITY;
int tgmp = currentThread().getThreadGroup().getMaxPriority();
if (tgmp < priority) priority = tgmp;
setPriority(priority);
}
public MyThread(Runnable target, String name) {
super(target, name);
}
public MyThread(ThreadGroup group, Runnable target, String name) {
super(group, target, name);
}
public MyThread(ThreadGroup group, Runnable target, String name, long stackSize) {
super(group, target, name, stackSize);
}
}