阅读量:0
Java中实现异步转同步的方法有多种,下面列举了几种常用的方法。
- 使用CountDownLatch:
CountDownLatch latch = new CountDownLatch(1); // 异步操作 new Thread(() -> { // 执行异步操作 // ... // 操作完成后释放锁 latch.countDown(); }).start(); // 等待异步操作完成 latch.await();
- 使用Future和Callable:
ExecutorService executor = Executors.newSingleThreadExecutor(); Future<T> future = executor.submit(new Callable<T>() { public T call() throws Exception { // 执行异步操作 // 返回结果 return result; } }); // 阻塞并获取异步操作的结果 T result = future.get();
- 使用CompletableFuture:
CompletableFuture<T> future = CompletableFuture.supplyAsync(() -> { // 执行异步操作 // 返回结果 return result; }); // 阻塞并获取异步操作的结果 T result = future.join();
以上方法都可以实现异步转同步,但具体使用哪种方法取决于具体的需求和场景。