JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

java基础之使用线程池并获取执行结果

wys521 2025-03-12 21:30:52 精选教程 11 ℃ 0 评论
import java.util.concurrent.*;
 
public class ThreadPoolExample {
    public static void main(String[] args) {
        ExecutorService executor = Executors.newFixedThreadPool(4);
        Callable task = () -> {
            Thread.sleep(1000); // 模拟耗时操作
            return "任务完成";
        };
        Future future = executor.submit(task);
        try {
            String result = future.get(); // 获取结果,这会阻塞直到任务完成
            System.out.println(result);
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        } finally {
            executor.shutdown(); // 关闭线程池
            try {
                if (!executor.awaitTermination(60, TimeUnit.SECONDS)) {
                    executor.shutdownNow(); // 如果超时未完成则尝试立即关闭线程池
                }
            } catch (InterruptedException ie) {
                executor.shutdownNow(); // 如果在等待过程中被中断,则尝试立即关闭线程池并恢复中断状态
                Thread.currentThread().interrupt(); // 确保中断状态被设置
            }
        }
    }
}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表