Inceptum/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/mds/NamedThreadFactory.java

25 lines
950 B
Java

package io.gitlab.jfronny.inceptum.launcher.system.mds;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
//Mirrors java.util.concurrent.Executors.DefaultThreadFactory
public class NamedThreadFactory implements ThreadFactory {
private static final AtomicInteger poolNumber = new AtomicInteger(1);
private final ThreadGroup group;
private final AtomicInteger threadNumber = new AtomicInteger(1);
private final String namePrefix;
public NamedThreadFactory(String name) {
this.group = Thread.currentThread().getThreadGroup();
this.namePrefix = name + "-" + poolNumber.getAndIncrement() + "-";
}
public Thread newThread(Runnable r) {
Thread t = new Thread(this.group, r, this.namePrefix + this.threadNumber.getAndIncrement(), 0L);
if (t.isDaemon()) t.setDaemon(false);
if (t.getPriority() != 5) t.setPriority(5);
return t;
}
}