Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java completefuture 默认线程池

作者:顺我者未必能活   发布日期:2026-04-11   浏览:95

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class CompletableFutureExample {

    public static void main(String[] args) {
        // 创建一个固定大小的线程池
        ExecutorService executor = Executors.newFixedThreadPool(4);

        // 使用自定义线程池来执行CompletableFuture任务
        CompletableFuture.supplyAsync(() -> {
            System.out.println("Task is running in thread: " + Thread.currentThread().getName());
            return "Hello, World!";
        }, executor).thenAccept(result -> {
            System.out.println("Result received: " + result);
        });

        // 关闭线程池
        executor.shutdown();
    }
}

解释说明

  1. 创建线程池:

    • ExecutorService executor = Executors.newFixedThreadPool(4);
      • 这里我们创建了一个固定大小为4的线程池。你可以根据实际需求调整线程池的大小。
  2. 使用自定义线程池:

    • CompletableFuture.supplyAsync(() -> { ... }, executor)
      • supplyAsync 方法接受两个参数:一个 Supplier 函数式接口和一个 Executor。Supplier 用于提供异步任务的结果,而 Executor 指定任务运行的线程池。
      • 在这个例子中,任务会在自定义线程池中的某个线程上执行,并返回字符串 "Hello, World!"
  3. 处理结果:

    • .thenAccept(result -> { ... })
      • thenAccept 方法用于在任务完成后处理结果。这里我们只是简单地打印了接收到的结果。
  4. 关闭线程池:

    • executor.shutdown();
      • 任务完成后,记得关闭线程池以释放资源。

如果你想要使用默认线程池(即 ForkJoinPool.commonPool()),只需去掉第二个参数 executor 即可:

CompletableFuture.supplyAsync(() -> {
    System.out.println("Task is running in thread: " + Thread.currentThread().getName());
    return "Hello, World!";
}).thenAccept(result -> {
    System.out.println("Result received: " + result);
});

上一篇:java list按照某个字段排序

下一篇:java判断字符串是否为数字

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

java读取excel中的图片

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站