package pl.shockah.shocky.threads; import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicInteger; public class SandboxThreadFactory implements ThreadFactory { static final AtomicInteger poolNumber = new AtomicInteger(1); final ThreadGroup group; final AtomicInteger threadNumber = new AtomicInteger(1); final String namePrefix; public SandboxThreadFactory(ThreadGroup group) { this.group = group; namePrefix = "sandbox-" + group.getName() + poolNumber.getAndIncrement(); } public Thread newThread(Runnable r) { Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement()); t.setDaemon(true); if (t.getPriority() != Thread.NORM_PRIORITY) t.setPriority(Thread.NORM_PRIORITY); return t; } }