您使用会在正确的轨道上
ConcurrentHashMap。对于每个点:
- 退房的方法
putIfAbsent
和replace
无一不是线程安全的,并结合检查的HashMap的当前状态,并更新到一个原子 *** 作。 - 该GET方法是不是内部同步,但会指定键可返回最近的值给它(检查讨论的ConcurrentHashMap类的Javadoc)。
ConcurrentHashMap与之类似的好处是,诸如之类
Collections.synchronizedMap的组合方法以内部同步的方式
putIfAbsent提供了传统的Map
get和
put逻辑。使用这些方法, 不要
尝试提供自己的自定义同步,
ConcurrentHashMap因为它将无法正常工作。该
java.util.concurrent集合被内部同步和其他线程不会在同步对象(例如,以努力作出响应
synchronize(myConcurrentHashMap){}也不会妨碍其他线程)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)