|
|
|
@ -19,25 +19,25 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
|
|
|
|
|
|
public class NamedDefaultThreadFactory implements ThreadFactory {
|
|
|
|
|
|
|
|
|
|
private static final AtomicInteger factoryCounter = new AtomicInteger(1);
|
|
|
|
|
private final AtomicInteger threadCounter = new AtomicInteger(1);
|
|
|
|
|
private final String namePrefix;
|
|
|
|
|
private ThreadFactory backingDefaultThreadFactory = Executors.defaultThreadFactory();
|
|
|
|
|
|
|
|
|
|
public NamedDefaultThreadFactory(String namePrefix) {
|
|
|
|
|
this.namePrefix = namePrefix;
|
|
|
|
|
/**
|
|
|
|
|
* Creates a thread factory with the given pool name as a name prefix. Threads created will have
|
|
|
|
|
* the name {@code <poolName>-thread-<thread-counter>}. A common pool name is of format {@code
|
|
|
|
|
* <pool-name>-<pool-id>}.
|
|
|
|
|
*
|
|
|
|
|
* @param poolName the thread pool name
|
|
|
|
|
*/
|
|
|
|
|
public NamedDefaultThreadFactory(String poolName) {
|
|
|
|
|
this.namePrefix = poolName + "-thread-";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Thread newThread(Runnable r) {
|
|
|
|
|
Thread thread = backingDefaultThreadFactory.newThread(r);
|
|
|
|
|
String threadName =
|
|
|
|
|
namePrefix
|
|
|
|
|
+ "-"
|
|
|
|
|
+ factoryCounter.getAndIncrement()
|
|
|
|
|
+ "-thread-"
|
|
|
|
|
+ threadCounter.getAndIncrement();
|
|
|
|
|
thread.setName(threadName);
|
|
|
|
|
thread.setName(namePrefix + threadCounter.getAndIncrement());
|
|
|
|
|
return thread;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|