Java
想实现调用B接口时,监听A接口是否已经执行完成
调用B接口时,能监听到A有没有执行完
我觉得Future
接口可以满足你的需求。
举例:
AtomicReference<Future<String>> ref = new AtomicReference<>();
void start(){
CompletableFuture<String> aF = CompletableFuture.supplyAsync(this::a);
ref.set( aF);
}
String a(){
return "a ret";
}
void b() throws ExecutionException, InterruptedException {
Future<String> aF = ref.get();
// 是否执行完?
boolean done = aF.isDone();
// 获取a接口的返回结果
if (done) {
String ret = aF.get();
}
}
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
最简单的方法,一个线程,先调用 A,再调用 B
如果是从一个线程里开始的异步,调用 A 返回个 Future,调用 B 的时候检查 Future 状态
如果不是一个线程里开始的,做一个全局变更标记一下
如果不是一个程序的…算了其实都一样