public static class AmigoThreadFactory implements ThreadFactory {
private static AtomicInteger fabricNumber = new AtomicInteger(1);
private AtomicInteger threadNumber = new AtomicInteger(1);
private ThreadGroup current = Thread.currentThread().getThreadGroup();
private int factoryNumber = fabricNumber.getAndIncrement();
@Override
public Thread newThread(Runnable r) {
Thread thread = new Thread(current, r);
thread.setName(String.format("%s-pool-%d-thread-%d", current.getName(), factoryNumber, threadNumber.getAndIncrement()));
// thread.setPriority(Thread.NORM_PRIORITY);
// thread.setDaemon(false);
return thread;
}
}
Не приняло, потому что не было закомментированных строчек, якобы нужно было указать приоритет и демона. Но, ведь, при создании нить автоматически будет выставлять приоритет на нормальный и демона в фолс, нет? Просто хочу спросить, чтобы быть точно уверенным.Ярослав
40 уровень
Действительно ли нужно явно указывать приоритет и демон в данной ситуации или это просто требования валидатора?
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Venik
17 мая 2018, 20:27
По первому пункту верно: Default priority of a thread is 5 (NORM_PRIORITY).
По второму: Когда создается новый поток, он наследует статус демона своего родителя. Любой поток, созданный по умолчанию не является демоном, потому что наследует его характер демона от Thread, и поэтому, любой другой поток, созданный из него, будет остаются не-демонами до тех пор, пока явным образом не вызовут демона, вызвав setDaemon(true).
+2
Ярослав Java Developer Master
17 мая 2018, 20:30
Ближе к сути, я прав и это просто требования валидатора, а реального эффекта никакого?
0
Venik
18 мая 2018, 09:11решение
Да в данном случае это так.
+2