From 8ea21f7d60a41c678d72a5dcbaf7fcdb685b9795 Mon Sep 17 00:00:00 2001 From: shaohua <1019758997@qq.com> Date: Sat, 2 Dec 2023 06:02:39 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/easylog/utils/ThreadPoolUtil.java | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 src/main/java/com/our/base/easylog/utils/ThreadPoolUtil.java diff --git a/src/main/java/com/our/base/easylog/utils/ThreadPoolUtil.java b/src/main/java/com/our/base/easylog/utils/ThreadPoolUtil.java new file mode 100644 index 0000000..68bb8c2 --- /dev/null +++ b/src/main/java/com/our/base/easylog/utils/ThreadPoolUtil.java @@ -0,0 +1,80 @@ +package com.our.base.easylog.utils; + +import java.util.List; +import java.util.concurrent.*; + +/** + * 线程池工具类 + * @author chongchong + */ +public class ThreadPoolUtil { + /** + * 工具类,构造方法私有化 + * */ + private ThreadPoolUtil() { + super(); + } + /** + * 线程池核心线程数 + */ + private final static Integer COREPOOLSIZE = 5; + /** + * 最大线程数 + */ + private final static Integer MAXIMUMPOOLSIZE = 10; + /** + * 空闲线程存活时间 + */ + private final static Integer KEEPALIVETIME = 180; + /** + * 线程池核心线程数 + */ + private static BlockingQueue queue = new ArrayBlockingQueue<>(10); + /** + * 线程池对象 + */ + private static ThreadPoolExecutor threadPool = new ThreadPoolExecutor(COREPOOLSIZE, MAXIMUMPOOLSIZE, + KEEPALIVETIME, TimeUnit.SECONDS, queue, new ThreadPoolExecutor.AbortPolicy()); + + /** + * 向线程池提交一个任务,返回线程结果 + * @param r + * @return + */ + public static Future submit(Callable r) { + return threadPool.submit(r); + } + + /** + * 向线程池提交一个任务,返回线程结果 + * @param rs + * @return + */ + public static List> submits(List rs) { + try { + List list = threadPool.invokeAll(rs); + return list; + } catch (InterruptedException e) { + e.printStackTrace(); + } + return null; + } + + /** + * 向线程池提交一个任务,不关心处理结果 + * @param r + */ + public static void execute(Runnable r) { + threadPool.execute(r); + } + + /** 获取当前线程池线程数量 */ + public static int getSize() { + return threadPool.getPoolSize(); + } + + /** 获取当前活动的线程数量 */ + public static int getActiveCount() { + return threadPool.getActiveCount(); + } +} -- Gitee From e2bc3a8703b812c562e2abaae5f4080a00fda79a Mon Sep 17 00:00:00 2001 From: shaohua <1019758997@qq.com> Date: Sat, 2 Dec 2023 06:12:10 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../our/base/easylog/utils/ThreadPoolUtil.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/our/base/easylog/utils/ThreadPoolUtil.java b/src/main/java/com/our/base/easylog/utils/ThreadPoolUtil.java index 68bb8c2..6b3a270 100644 --- a/src/main/java/com/our/base/easylog/utils/ThreadPoolUtil.java +++ b/src/main/java/com/our/base/easylog/utils/ThreadPoolUtil.java @@ -5,18 +5,20 @@ import java.util.concurrent.*; /** * 线程池工具类 + * * @author chongchong */ public class ThreadPoolUtil { /** * 工具类,构造方法私有化 - * */ + */ private ThreadPoolUtil() { super(); } + /** * 线程池核心线程数 - */ + */ private final static Integer COREPOOLSIZE = 5; /** * 最大线程数 @@ -38,6 +40,7 @@ public class ThreadPoolUtil { /** * 向线程池提交一个任务,返回线程结果 + * * @param r * @return */ @@ -47,6 +50,7 @@ public class ThreadPoolUtil { /** * 向线程池提交一个任务,返回线程结果 + * * @param rs * @return */ @@ -62,18 +66,23 @@ public class ThreadPoolUtil { /** * 向线程池提交一个任务,不关心处理结果 + * * @param r */ public static void execute(Runnable r) { threadPool.execute(r); } - /** 获取当前线程池线程数量 */ + /** + * 获取当前线程池线程数量 + */ public static int getSize() { return threadPool.getPoolSize(); } - /** 获取当前活动的线程数量 */ + /** + * 获取当前活动的线程数量 + */ public static int getActiveCount() { return threadPool.getActiveCount(); } -- Gitee