package org.webpieces.util.threading; import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicInteger; public class NamedThreadFactory implements ThreadFactory { private AtomicInteger count = new AtomicInteger(0); private String threadNamePrefix; public NamedThreadFactory(String threadNamePrefix) { this.threadNamePrefix = threadNamePrefix; } private int getNextCount() { return count.getAndIncrement(); } @Override public Thread newThread(Runnable r) { Thread t = new Thread(r, threadNamePrefix+getNextCount()); t.setDaemon(true); t.setUncaughtExceptionHandler(new UncaughtExceptHandler()); return t; } }