温馨提示×

java并行调用多个接口怎么实现

小亿
322
2023-11-23 00:46:09
栏目: 编程语言

要实现并行调用多个接口,可以使用Java的多线程技术。可以创建多个线程,分别调用不同的接口,并行地执行。

下面是一个简单的示例代码:

import java.util.concurrent.*;

public class ParallelInterfaceInvocation {
    public static void main(String[] args) {
        ExecutorService executor = Executors.newFixedThreadPool(2);

        // 创建多个Callable任务,每个任务分别调用一个接口
        Callable<String> task1 = new Callable<String>() {
            @Override
            public String call() throws Exception {
                // 调用接口1的逻辑
                return "Result from Interface 1";
            }
        };

        Callable<String> task2 = new Callable<String>() {
            @Override
            public String call() throws Exception {
                // 调用接口2的逻辑
                return "Result from Interface 2";
            }
        };

        // 提交任务给线程池
        Future<String> future1 = executor.submit(task1);
        Future<String> future2 = executor.submit(task2);

        try {
            // 获取接口调用结果
            String result1 = future1.get();
            String result2 = future2.get();

            // 处理接口调用结果
            System.out.println("Result from Interface 1: " + result1);
            System.out.println("Result from Interface 2: " + result2);

            // 关闭线程池
            executor.shutdown();
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们创建了一个固定大小为2的线程池,然后创建了两个Callable任务,分别代表调用两个不同接口的逻辑。接着,我们将这两个任务提交给线程池,得到两个Future对象,分别表示每个任务的执行结果。通过调用Future对象的get()方法,可以获取每个任务的返回结果,然后进行相应的处理。

这样,我们就实现了并行调用多个接口的功能。注意,如果接口的调用是阻塞的,可以使用Future对象的get()方法来等待接口调用的完成。如果接口的调用是非阻塞的,可以使用Future对象的isDone()方法来判断接口调用是否完成。

0