diff --git a/client/src/main/java/ctbrec/GlobalThreadPool.java b/client/src/main/java/ctbrec/GlobalThreadPool.java new file mode 100644 index 00000000..aaeccf92 --- /dev/null +++ b/client/src/main/java/ctbrec/GlobalThreadPool.java @@ -0,0 +1,32 @@ +package ctbrec; + +import java.util.UUID; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; + +public class GlobalThreadPool { + + private static ExecutorService threadPool = Executors.newCachedThreadPool(r -> { + Thread t = new Thread(r); + t.setDaemon(true); + t.setName("GlobalWorker-" + UUID.randomUUID().toString().substring(0, 8)); + return t; + }); + + private GlobalThreadPool() { + } + + public static Future submit(Runnable runnable) { // NOSONAR + return threadPool.submit(runnable); + } + + public static Future submit(Callable callable) { + return threadPool.submit(callable); + } + + public static ExecutorService get() { + return threadPool; + } +}