【发布时间】:2013-10-17 14:33:22
【问题描述】:
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() 方法中执行哪些技术来确保我正在查找的值存在?或者我怎样才能让它等到它进来?
【问题讨论】:
-
在同一个类中不能有两个具有相同名称和签名的方法。也就是说,你不能在同一个类中有两个运行方法。你也错过了很多
}。 -
生产者/消费者通常让消费者线程等待/阻塞,直到有可用的东西。当生产者产生某些东西时,它可以通知等待/阻塞的消费者线程某些东西可用。
-
您有一个带有公共字段的公共类。我猜你是并发编程的新手。
标签: java multithreading asynchronous