0

下面的问题是一个抽象的问题,我将不胜感激听取有关该问题的意见。

我的问题如下:

我有一个线程监听数据馈送并将其存储到缓存中。每次在缓存中添加某些内容时,观察者都会将其拾取并将其添加到 HashMap 中。我事先不知道我会得到多少个提要,但这个数字不是无限的。

此外,我的应用程序运行另一个线程,该线程正在执行一些处理,然后检索 HashMap 中的值。

我的问题是我真的不知道是否所有的值都存储在 HashMap 中,所以我不能在它们之间同步两个线程或通知后面的线程存储所有提要的工作已经完成。

流程类似于以下内容:

Thread-1 -> listens for data feeds -> cache data feeds -> cache observer -> HashMap

                                                                               ^
                                                                               |
Thread-2 -> starting execution at a random time and needs data from the      HashMap

我真的很想听听一些关于这个问题的建议。上面要考虑的唯一棘手的事情是我真的不知道要存储在 HashMap 中的提要数量,因此我真的不能等待负责存储对象的其他线程通知。

任何回应表示赞赏。

4

1 回答 1

1

在完成预先记录的测试数据后,您不能使用 a直接Condition唤醒吗?测试中的两个线程可以共享一个对象(也许通过依赖注入)?Thread-2Thread-1Condition

于 2012-12-20T16:59:58.023 回答