java怎么实现异步调用

88次阅读
没有评论

共计 1238 个字符,预计需要花费 4 分钟才能阅读完成。

在 Java 中,可以使用多种方法实现异步调用,下面列举了其中的两种常用方式:

  1. 使用线程池:可以使用 Java 中的 ExecutorService 来创建线程池,然后使用 submit 方法提交一个任务给线程池执行,并使用 Future 对象获取异步调用的结果。以下是示例代码:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class Main {public static void main(String[] args) {// 创建线程池
        ExecutorService executorService = Executors.newFixedThreadPool(1);

        // 提交任务并获取 Future 对象
        Future<String> future = executorService.submit(() -> {// 异步调用的逻辑代码
            Thread.sleep(1000);
            return " 异步调用结果 ";
        });

        // 获取异步调用的结果
        try {String result = future.get();
            System.out.println(" 异步调用结果:" + result);
        } catch (Exception e) {e.printStackTrace();
        }

        // 关闭线程池
        executorService.shutdown();}
}
  1. 使用 CompletableFuture:CompletableFuture是 Java 8 中新增的一个类,可以方便地实现异步调用。以下是示例代码:
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

public class Main {public static void main(String[] args) {// 创建 CompletableFuture 对象
        CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {// 异步调用的逻辑代码
            try {Thread.sleep(1000);
            } catch (InterruptedException e) {e.printStackTrace();
            }
            return " 异步调用结果 ";
        });

        // 获取异步调用的结果
        try {String result = future.get();
            System.out.println(" 异步调用结果:" + result);
        } catch (InterruptedException | ExecutionException e) {e.printStackTrace();
        }
    }
}

这两种方法都可以实现异步调用,选择哪种方式取决于具体的需求和情况。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-16发表,共计1238字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)