我们正在使用HashMap在HttpSession(Jetty)中存储数据。 我们不会在put和get上同步。 是否有可能一个请求将数据放入Map中,另一个请求在Map中没有看到该数据,因为它们来自不同的线程(Jetty线程池)?
也许我们必须使用ConcurrentHashMap?
答案 0 :(得分:2)
您必须确保存储在会话中的整个对象的状态在不同的线程之间是一致的。
将HashMap
替换为ConcurrentHashMap
可能还不够。
ConcurrentHashMap
唯一确保的是'先发生'行为将对地图中存储的值和密钥强制执行。