public class SomeAdaptor implements SomeListener {
public ConcurrentHashMap<String, Double> pendingRFQ;
@Override
public void run() {
pendingRFQ.put(response.getId(), price);
} //first run method
@Override
public void run() {
Double price = pendingRFQ.get(quoteEvent.getId());
if (price != null)
System.out.println("ORDER TO Market.....");
} //2nd run method
我遇到了一些线程问题。当我尝试在第二个pendingRFQ
方法中提取价格时,run()
地图不是最新的。我可以在第二run()
方法中执行哪些技术来确保我正在查找的值?或者我怎么能让它等到它进来?
答案 0 :(得分:6)
将Map
替换为BlockingQueue
,并在第二个帖子中使用poll()
等待输入。