java8多线程使用示例
使用CompletableFuture.allOf实现异步执行同步搜集结果 /** * @author wjq * @create 2022-03-12 16:19 */ public class TestCompleteFuture { private static final int corePoolSize = 10; // 核心线程数 private static final int maximumPoolSize = 20; // 最大线程数 private static final long keepAliveTime = 60; // 存活时间 /** * 自定义线程池 */ private static final ThreadPoolExecutor executor = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, TimeUnit.SECONDS, new ArrayBlockingQueue(100), new ThreadPoolExecutor.CallerRunsPolicy()); /** * 使用CompletableFuture完成多任务执行示例 * @param args */ public static void main(String[] args) { List<String> resultList = new ArrayList<>(); // CompletableFuture list List<CompletableFuture<?>> list = new ArrayList<>(); // 第一个任务 list.add(CompletableFuture.runAsync(() -> { // TODO: 具体的任务执行... resultList.add("第一个任务的执行结果"); }, executor)); // 第二个任务 list.add(CompletableFuture.runAsync(() -> { // TODO: 具体的任务执行... resultList.add("第二个任务的执行结果"); }, executor)); // 第三个任务 list.add(CompletableFuture.runAsync(() -> { // TODO: 具体的任务执行... resultList.add("第三个任务的执行结果"); }, executor)); // 第四个任务 list.add(CompletableFuture.runAsync(() -> { // TODO: 具体的任务执行... resultList.add("第四个任务的执行结果"); }, executor)); // 待等所有任务执行完成 CompletableFuture.allOf(list.toArray(new CompletableFuture[0])).join(); System.out.println(resultList); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix