diff --git a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/asyncTask/AsyncLatchUtils.java b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/asyncTask/AsyncLatchUtils.java index 30837df7..25d4f235 100644 --- a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/asyncTask/AsyncLatchUtils.java +++ b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/asyncTask/AsyncLatchUtils.java @@ -9,7 +9,7 @@ import java.util.concurrent.*; * 多次提交,一次等待 */ public class AsyncLatchUtils { - private static final ThreadLocal> THREADLOCAL = ThreadLocal.withInitial(LinkedList::new); + private static final ThreadLocal> THREAD_LOCAL = ThreadLocal.withInitial(LinkedList::new); /** * 提交一个异步任务 @@ -17,7 +17,7 @@ public class AsyncLatchUtils { * @param runnable 需要异步执行的具体业务逻辑 */ public static void submitTask(Executor executor, Runnable runnable) { - THREADLOCAL.get().add(new TaskInfo(executor, runnable)); + THREAD_LOCAL.get().add(new TaskInfo(executor, runnable)); } /** @@ -25,8 +25,8 @@ public class AsyncLatchUtils { * @return */ private static List popTask() { - List taskInfos = THREADLOCAL.get(); - THREADLOCAL.remove(); + List taskInfos = THREAD_LOCAL.get(); + THREAD_LOCAL.remove(); return taskInfos; } @@ -39,7 +39,7 @@ public class AsyncLatchUtils { */ public static boolean waitFor(long timeout, TimeUnit timeUnit) { List taskInfos = popTask(); - if (taskInfos.isEmpty()) { + if (taskInfos.isEmpty()) { return true; } CountDownLatch latch = new CountDownLatch(taskInfos.size()); @@ -57,8 +57,11 @@ public class AsyncLatchUtils { boolean await = false; try { await = latch.await(timeout, timeUnit); - } catch (Exception ignored) {} - return await; + } catch (Exception ignored) { + // 恢复中断状态 + Thread.currentThread().interrupt(); + } + return await; } private static final class TaskInfo {