创建一个线程工厂
2021/7/3小于 1 分钟
区分其他线程,监控线程。
class NamedThreadFactory implements ThreadFactory {
private static final AtomicInteger POOL_NUMBER = new AtomicInteger(1);
private final AtomicInteger THREAD_NUMBER;
private final ThreadGroup GROUP;
private final String NAME_PREFIX;
private final boolean IS_DAEMON;
NamedThreadFactory() {
this("test-thread-factory");
}
NamedThreadFactory(String name) {
this(name, false);
}
NamedThreadFactory(String preffix, boolean daemon) {
this.THREAD_NUMBER = new AtomicInteger(0);
SecurityManager s = System.getSecurityManager();
this.GROUP = s != null ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();
this.NAME_PREFIX = preffix + "-" + POOL_NUMBER.getAndIncrement() + "-thread-";
this.IS_DAEMON = daemon;
}
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(this.GROUP, r, this.NAME_PREFIX + this.THREAD_NUMBER.getAndIncrement(), 0L);
t.setDaemon(this.IS_DAEMON);
if (t.getPriority() != Thread.NORM_PRIORITY) {
t.setPriority(Thread.NORM_PRIORITY);
}
return t;
}
}