From 7f4b82204a87afe00a50fd9036799fb332d38152 Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Wed, 18 Mar 2026 16:18:10 +0800 Subject: [PATCH] refactor(runner): change stdout/stderr reading thread into virtual thread in CommandExecutionService --- .../runner/execution/CommandExecutionService.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Partner-Core/src/main/java/work/slhaf/partner/core/action/runner/execution/CommandExecutionService.java b/Partner-Core/src/main/java/work/slhaf/partner/core/action/runner/execution/CommandExecutionService.java index 1aaa5a07..d47aee0e 100644 --- a/Partner-Core/src/main/java/work/slhaf/partner/core/action/runner/execution/CommandExecutionService.java +++ b/Partner-Core/src/main/java/work/slhaf/partner/core/action/runner/execution/CommandExecutionService.java @@ -7,10 +7,14 @@ import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicInteger; public class CommandExecutionService { + private ExecutorService readerExecutor = Executors.newVirtualThreadPerTaskExecutor(); + public String[] buildFileExecutionCommands(String launcher, Map params, String absolutePath) { int paramSize = params == null ? 0 : params.size(); String[] commands = new String[paramSize + 2]; @@ -57,8 +61,8 @@ public class CommandExecutionService { } }); - stdoutThread.start(); - stderrThread.start(); + readerExecutor.execute(stdoutThread); + readerExecutor.execute(stderrThread); int exitCode = process.waitFor(); stdoutThread.join(); @@ -81,4 +85,8 @@ public class CommandExecutionService { private String total; private List resultList; } + + @Data + public static class CommandSessionResult { + } }