以下问题是一个抽象的问题,我很想听听有关问题的意见。
我的问题如下:
我有一个线程侦听数据源并将它们存储到缓存中。每次在缓存上添加某些内容时,观察者会将其选中并将其添加到HashMap中。我以前不知道我会得到多少饲料,但这个数字不是无限的。
此外,我的应用程序运行另一个线程,它正在进行一些处理,然后检索HashMap中的值。
我的问题是我真的不知道所有的值是否已经存储在HashMap中,所以我不能相互同步它们之间的两个线程,或者通知后来的线程存储所有feed的工作已经完成
流程类似于以下内容:
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中的提要数量,因此我真的不能等待负责存储对象的其他线程的通知。
任何回应都表示赞赏。
答案 0 :(得分:1)
完成预先录制的测试数据后,您无法使用Condition
直接从Thread-2
唤醒Thread-1
吗?测试中的两个线程可以共享一个Condition
对象(可能通过依赖注入)吗?