Java中實現(xiàn)異步轉(zhuǎn)同步的方法有多種,下面列舉了幾種常用的方法。
CountDownLatch latch = new CountDownLatch(1);
// 異步操作
new Thread(() -> {
// 執(zhí)行異步操作
// ...
// 操作完成后釋放鎖
latch.countDown();
}).start();
// 等待異步操作完成
latch.await();
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<T> future = executor.submit(new Callable<T>() {
public T call() throws Exception {
// 執(zhí)行異步操作
// 返回結(jié)果
return result;
}
});
// 阻塞并獲取異步操作的結(jié)果
T result = future.get();
CompletableFuture<T> future = CompletableFuture.supplyAsync(() -> {
// 執(zhí)行異步操作
// 返回結(jié)果
return result;
});
// 阻塞并獲取異步操作的結(jié)果
T result = future.join();
以上方法都可以實現(xiàn)異步轉(zhuǎn)同步,但具體使用哪種方法取決于具體的需求和場景。