在我的程序中,我实质上是尝试连接到发布者并获取数据。这些步骤中有基本功能
onDataUpdate(Object theUpdate)
方法从那里,我可以打印数据,或将其写入数据库或需要执行的任何操作。一切正常。
我的问题是,我现在想以某种方式包装功能,以便调用程序可以说请求数据并在收到数据后立即接收它。意思是,我希望我的暴露方法看起来像
public Object getData() {
subscribeForData();
// somehow wait
return theUpdate;
}
我怎样才能做到这一点?收到更新后,有什么方法可以使用线程等待/通知?我是stackoverflow和多线程编程的新手,因此,任何帮助和示例代码将不胜感激!提前致谢。
最佳答案
在这种情况下,我更喜欢使用CountDownLatch,在这里我将使用计数1初始化我的lathch
,一旦我订阅发布者,我将在await(
上调用latch
),当我收到回调时,我将countdown
变成latch
。