diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/executor/ThreadPoolManager.java b/hippo4j-common/src/main/java/cn/hippo4j/common/executor/ThreadPoolManager.java index fd29b8f9..b38d104f 100644 --- a/hippo4j-common/src/main/java/cn/hippo4j/common/executor/ThreadPoolManager.java +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/executor/ThreadPoolManager.java @@ -42,6 +42,9 @@ public class ThreadPoolManager { return INSTANCE; } + private ThreadPoolManager() { + } + static { INSTANCE.init(); } diff --git a/hippo4j-common/src/test/java/cn/hippo4j/common/executor/ThreadPoolManagerTest.java b/hippo4j-common/src/test/java/cn/hippo4j/common/executor/ThreadPoolManagerTest.java index de10bbd9..d508d347 100644 --- a/hippo4j-common/src/test/java/cn/hippo4j/common/executor/ThreadPoolManagerTest.java +++ b/hippo4j-common/src/test/java/cn/hippo4j/common/executor/ThreadPoolManagerTest.java @@ -17,5 +17,59 @@ package cn.hippo4j.common.executor; -public final class ThreadPoolManagerTest { + +import cn.hippo4j.common.toolkit.ReflectUtil; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; + +public class ThreadPoolManagerTest { + + // tenantId = schedule,group = schedule + ScheduledExecutorService executorService1 = Executors.newScheduledThreadPool(1); + + // tenantId = schedule,group = schedule + ScheduledExecutorService executorService2 = Executors.newScheduledThreadPool(10); + + // tenantId = executor,group = executor + ExecutorService executorService3 = Executors.newFixedThreadPool(8); + + // tenantId = executor,group = executor + ExecutorService executorService4 = Executors.newFixedThreadPool(16); + + static final String schedule = "schedule"; + + static final String executor = "executor"; + + @Test + public void getInstance() { + ThreadPoolManager poolManager = ThreadPoolManager.getInstance(); + Assert.assertNotNull(poolManager); + } + + @Test + public void register() { + ThreadPoolManager poolManager = ThreadPoolManager.getInstance(); + poolManager.register(schedule, schedule, executorService1); + poolManager.register(schedule, schedule, executorService2); + poolManager.register(executor, executor, executorService3); + poolManager.register(executor, executor, executorService4); + + Map>> manager = (Map>>) ReflectUtil.getFieldValue(poolManager, "resourcesManager"); + + Map> scheduleMap = manager.get(schedule); + Assert.assertEquals(1, scheduleMap.size()); + Set scheduleSet = scheduleMap.get(schedule); + Assert.assertEquals(2, scheduleSet.size()); + + Map> executorMap = manager.get(executor); + Assert.assertEquals(1, executorMap.size()); + Set executorSet = executorMap.get(executor); + Assert.assertEquals(2, executorSet.size()); + } }