Concurrenthashmap没有在线程之间更新

时间:2018-09-19 11:30:01

标签: java hashmap concurrenthashmap

我正在使用并发哈希表,当出现jms消息时会填充它。只要有相同的键进入,就必须重写它。

现在我面临的问题是:地图始终是空的。因此,每次添加条目而不是覆盖条目。

不确定我在做什么错。请仔细阅读代码并为我提供帮助。

public class Dispatcher{ 
    private static ConcurrentHashMap<String, Executor> map= new ConcurrentHashMap<>(); 

    public dispatch(String key, String message) { 
    if(map.containsKey(key)){ //this always returns false. Printed to check and it is empty.
         //rest of the code 
    }else{
         map.put(key,new Executor(message)); 
         //rest of the code
    }}
public class MsgListener implements SessionAwareListener {
    Dispatcher dispatcher = new Dispatcher();
    public void onMessage(javax.jms.Message, Session session) {
        //Rest of the code
        dispatcher.dispatch(key,msg);
}}

用于测试的输入:

锁定1-消息1

锁定1-消息2

锁定2-消息3

Lock3-消息4

调度程序类在调用类内部仅实例化一次。我已经测试过,发现可以打印相同的对象。

0 个答案:

没有答案