TerraForged/TerraForgedCore/src/main/java/com/terraforged/core/util/concurrent/WorkerFactory.java

26 lines
765 B
Java
Raw Normal View History

package com.terraforged.core.util.concurrent;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
// As DefaultThreadPool but with custom thread names
public class WorkerFactory implements ThreadFactory {
private final String prefix;
private final ThreadGroup group;
private final AtomicInteger threadNumber = new AtomicInteger(1);
public WorkerFactory(String name) {
group = Thread.currentThread().getThreadGroup();
prefix = name + "-Worker-";
}
@Override
public Thread newThread(Runnable task) {
Thread thread = new Thread(group, task);
thread.setDaemon(true);
thread.setName(prefix + threadNumber.getAndIncrement());
return thread;
}
}