如何在Java中实现调用B接口时监听A接口执行状态?

新手上路,请多包涵

Java
想实现调用B接口时,监听A接口是否已经执行完成

调用B接口时,能监听到A有没有执行完

阅读 842
2 个回答

最简单的方法,一个线程,先调用 A,再调用 B
如果是从一个线程里开始的异步,调用 A 返回个 Future,调用 B 的时候检查 Future 状态
如果不是一个线程里开始的,做一个全局变更标记一下
如果不是一个程序的…算了其实都一样

新手上路,请多包涵

我觉得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();
        }
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题