DaemonThreadFactory.java
package com.shengzhiai.yugu.internal;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
/** Named daemon threads, so SDK threads never keep a JVM alive. */
public final class DaemonThreadFactory implements ThreadFactory {
private final String prefix;
private final AtomicInteger seq = new AtomicInteger();
/** @param prefix thread name prefix */
public DaemonThreadFactory(String prefix) {
this.prefix = prefix;
}
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r, prefix + "-" + seq.incrementAndGet());
t.setDaemon(true);
return t;
}
}