1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.monitoring.util;
18
19 import java.util.concurrent.ThreadFactory;
20 import java.util.concurrent.atomic.AtomicInteger;
21
22 public final class DaemonThreadFactory implements ThreadFactory {
23 private final AtomicInteger id = new AtomicInteger(1);
24 private final String baseName;
25
26 public DaemonThreadFactory(final String baseName) {
27 this.baseName = baseName;
28 }
29
30 @Override
31 public Thread newThread(final Runnable r) {
32 final Thread thread = new Thread(Thread.currentThread().getThreadGroup(), r, baseName + id.getAndIncrement());
33 if (!thread.isDaemon()) {
34 thread.setDaemon(true);
35 }
36 if (thread.getPriority() != Thread.NORM_PRIORITY) {
37 thread.setPriority(Thread.NORM_PRIORITY);
38 }
39 return thread;
40 }
41 }