package lsr.paxos; import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicInteger; public final class NamedThreadFactory implements ThreadFactory { private final String name; private final AtomicInteger sequencer = new AtomicInteger(1); private boolean useSeqNumber; public NamedThreadFactory(String name) { this(name, true); } /** * @param name * @param useSeqNumber Whether to add a sequence number to threads created * by this factory */ public NamedThreadFactory(String name, boolean useSeqNumber) { this.name = name; this.useSeqNumber = useSeqNumber; } public Thread newThread(Runnable r) { String threadName = name; if (useSeqNumber) { threadName += "-" + sequencer.getAndIncrement(); } return new Thread(r, threadName); } }