生产者Java中的消费者问题

时间:2013-10-17 14:33:22

标签: java multithreading asynchronous

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()方法中执行哪些技术来确保我正在查找的值?或者我怎么能让它等到它进来?

1 个答案:

答案 0 :(得分:6)

Map替换为BlockingQueue,并在第二个帖子中使用poll()等待输入。