在Android/Java中,可以使用CountDownLatch来等待闭包执行完毕。CountDownLatch是一个同步辅助类,它可以让一个或多个线程等待其他线程完成操作。
以下是一个使用CountDownLatch的示例代码:
import java.util.concurrent.CountDownLatch;
public class Main {
public static void main(String[] args) {
final CountDownLatch latch = new CountDownLatch(1);
new Thread(new Runnable() {
@Override
public void run() {
// 执行闭包操作
System.out.println("执行闭包操作");
try {
Thread.sleep(2000); // 模拟耗时操作
} catch (InterruptedException e) {
e.printStackTrace();
}
latch.countDown(); // 闭包执行完毕,减少计数器
}
}).start();
try {
// 等待闭包操作执行完毕
latch.await();
System.out.println("闭包执行完毕");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
在上述代码中,我们创建了一个CountDownLatch对象,并将计数器初始化为1。然后创建一个新的线程来执行闭包操作,并在闭包操作执行完毕后调用countDown()
方法来减少计数器。
在主线程中,我们调用await()
方法来等待闭包操作执行完毕。当计数器减少为0时,主线程才会从await()
方法中返回,表示闭包执行完毕。然后我们就可以继续执行其他操作。
输出结果:
执行闭包操作
闭包执行完毕
通过使用CountDownLatch,我们可以实现等待闭包执行完毕的功能。这样可以确保在闭包操作执行完毕之后再进行其他操作。