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
我遇到一些线程问题。当我尝试在第二个 run()
方法中提取价格时,pendingRFQ
map 不是最新的。我可以在第二个 run()
方法中执行哪些技术来确保我正在查找的值存在?或者我怎样才能让它等到它进来?
最佳答案
将 Map
替换为 BlockingQueue
并在第二个线程中使用 poll()
等待输入。
关于java - Java中的生产者消费者问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19429628/