DINGDANGMAOUP
DINGDANGMAOUP
Published on 2024-06-21 / 56 Visits
0
0

多个线程任务批量提交

import java.util.concurrent.*;

ThreadPoolExecutor THREAD_POOL_EXECUTOR =
            new ThreadPoolExecutor(
                    (int) Math.floor(4),
                    4, 60,
                    TimeUnit.SECONDS, new LinkedBlockingQueue<>(),
                    Executors.defaultThreadFactory());

List<CompletableFuture<Void>> futures = new CopyOnWriteArrayList<>();

        for (int i = 0; i < 10; i++) {
            int finalI = i;
            CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
                System.out.println(Thread.currentThread().getName() + "执行了:" + finalI);
            }, THREAD_POOL_EXECUTOR);
            futures.add(future);
        }
        CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
        System.out.println("执行完毕");
        THREAD_POOL_EXECUTOR.shutdown();


Comment