From e8dd3f9282d476db213ed8a56b0cbdeb00d9e609 Mon Sep 17 00:00:00 2001 From: godotg Date: Thu, 8 Sep 2022 11:02:36 +0800 Subject: [PATCH] =?UTF-8?q?feat[thread]:=20=E5=A2=9E=E5=8A=A0=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E9=80=9A=E8=BF=87=E7=BA=BF=E7=A8=8B=E5=8F=B7?= =?UTF-8?q?=E5=AF=BB=E6=89=BE=E5=AF=B9=E5=BA=94=E7=9A=84=E7=BA=BF=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/zfoo/util/ThreadUtils.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/util/src/main/java/com/zfoo/util/ThreadUtils.java b/util/src/main/java/com/zfoo/util/ThreadUtils.java index 731ee5ab..9feecbdd 100644 --- a/util/src/main/java/com/zfoo/util/ThreadUtils.java +++ b/util/src/main/java/com/zfoo/util/ThreadUtils.java @@ -48,6 +48,25 @@ public abstract class ThreadUtils { return (null != s) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup(); } + /** + * 通过线程号寻找对应的线程 + */ + public static Thread findThread(long threadId) { + var group = currentThreadGroup(); + while (group != null) { + var threads = new Thread[group.activeCount() * 2]; + var count = group.enumerate(threads, true); + for (var i = 0; i < count; i++) { + if (threadId == threads[i].getId()) { + return threads[i]; + } + } + group = group.getParent(); + } + return null; + } + + public static void shutdown(ExecutorService executor) { try { if (!executor.isTerminated()) {