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();
}
}
4 回答1.5k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答749 阅读✓ 已解决
2 回答1.8k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
最简单的方法,一个线程,先调用 A,再调用 B
如果是从一个线程里开始的异步,调用 A 返回个 Future,调用 B 的时候检查 Future 状态
如果不是一个线程里开始的,做一个全局变更标记一下
如果不是一个程序的…算了其实都一样