Javaで非同期にサードパーティのインターフェースを呼び出すにはどうすればよいですか?
Javaではマルチスレッドを利用する方法と、非同期フレームワークを利用する方法とで、非同期的に外部APIを呼び出すことができます。
- マルチスレッドを使用すれば:
非同期処理により、サードパーティーインターフェースの呼び出しオペレーションのために新しいスレッドを作成することで、このオペレーションの戻り値を待機せずにメインスレッドで他のタスクを実行させることができます。スレッドの作成には Java の `Thread` クラスまたは `ExecutorService` を使用できます。
サンプルコード:
public class AsyncCallExample {
public static void main(String[] args) {
// 创建一个新的线程来执行第三方接口的调用操作
Thread thread = new Thread(() -> {
// 执行第三方接口的调用操作
String result = callThirdPartyAPI();
// 处理第三方接口的返回结果
processResult(result);
});
// 启动线程
thread.start();
// 继续执行其他任务
System.out.println("Do something else...");
}
private static String callThirdPartyAPI() {
// 调用第三方接口
// ...
return "Third party API response";
}
private static void processResult(String result) {
// 处理第三方接口的返回结果
// ...
}
}
- 非同期フレームワークを使う:
JavaにはCompletableFutureやRxJavaなど、非同期でサードパーティのインターフェイスを呼び出すのに役立つ非同期フレームワークがあります。
CompletableFutureを使用したサンプルコード:
import java.util.concurrent.CompletableFuture;
public class AsyncCallExample {
public static void main(String[] args) {
// 异步调用第三方接口
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
// 执行第三方接口的调用操作
String result = callThirdPartyAPI();
return result;
});
// 处理第三方接口的返回结果
future.thenAccept(result -> {
processResult(result);
});
// 继续执行其他任务
System.out.println("Do something else...");
}
private static String callThirdPartyAPI() {
// 调用第三方接口
// ...
return "Third party API response";
}
private static void processResult(String result) {
// 处理第三方接口的返回结果
// ...
}
}
Javaの非同期サードパーティAPI呼び出し用に一般的な2つの実装方法を上述しました。特定の状況に応じて適切な方法を選択して非同期呼び出しを実装できます。