diff --git a/src/main/java/org/warp/commonutils/type/ShortNamedThreadFactory.java b/src/main/java/org/warp/commonutils/type/ShortNamedThreadFactory.java index fb42d20..0bb4eee 100644 --- a/src/main/java/org/warp/commonutils/type/ShortNamedThreadFactory.java +++ b/src/main/java/org/warp/commonutils/type/ShortNamedThreadFactory.java @@ -39,6 +39,7 @@ public class ShortNamedThreadFactory implements ThreadFactory { } } private ThreadGroup group; + private boolean daemon; private final AtomicInteger threadNumber = new AtomicInteger(1); private static final String NAME_PATTERN = "%s-%d"; private final String threadNamePrefix; @@ -59,6 +60,11 @@ public class ShortNamedThreadFactory implements ThreadFactory { return this; } + public ShortNamedThreadFactory setDaemon(boolean daemon) { + this.daemon = daemon; + return this; + } + private static String checkPrefix(String prefix) { return prefix == null || prefix.length() == 0 ? "Unnamed" : prefix; } @@ -72,7 +78,7 @@ public class ShortNamedThreadFactory implements ThreadFactory { public Thread newThread(@NotNull Runnable r) { final Thread t = new Thread(group, r, String.format(Locale.ROOT, "%s-%d", this.threadNamePrefix, threadNumber.getAndIncrement()), 0); - t.setDaemon(false); + t.setDaemon(daemon); t.setPriority(Thread.NORM_PRIORITY); return t; }