在我的程序中,我实质上是尝试连接到发布者并获取数据。这些步骤中有基本功能

  • 我使用用户名和密码等建立与发布者的连接
  • 我请求数据。方法退出
  • 发布者的API给我回调了onDataUpdate(Object theUpdate)方法

  • 从那里,我可以打印数据,或将其写入数据库或需要执行的任何操作。一切正常。

    我的问题是,我现在想以某种方式包装功能,以便调用程序可以说请求数据并在收到数据后立即接收它。意思是,我希望我的暴露方法看起来像
    public Object getData() {
        subscribeForData();
        // somehow wait
        return theUpdate;
    }
    

    我怎样才能做到这一点?收到更新后,有什么方法可以使用线程等待/通知?我是stackoverflow和多线程编程的新手,因此,任何帮助和示例代码将不胜感激!提前致谢。

    最佳答案

    在这种情况下,我更喜欢使用CountDownLatch,在这里我将使用计数1初始化我的lathch,一旦我订阅发布者,我将在await(上调用latch),当我收到回调时,我将countdown变成latch

    10-02 09:20