package edu.washington.escience.myria.util.concurrent;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Rename threads by a prefix and a number. The numbering starts at 0.
* */
public class RenamingThreadFactory implements ThreadFactory {
/**
* the prefix.
* */
private final String prefix;
/**
* The atomic suffix number generator.
* */
private final AtomicInteger seq;
/**
* @param prefix the prefix.
* */
public RenamingThreadFactory(final String prefix) {
this.prefix = prefix;
seq = new AtomicInteger(0);
}
@Override
public Thread newThread(final Runnable r) {
return new Thread(prefix + "#" + seq.getAndIncrement()) {
@Override
public void run() {
r.run();
}
};
}
}