修改值ArrayList的concurrentHashMap线程安全吗? 如果不是,初始化和更新 ConcurrentHashMap 内的整数数组列表的最有效方法是什么?
谢谢
请您参考如下方法:
在您的示例中,有两个数据结构需要线程安全。
其中之一是 map ,因此 map 上的任何更新都需要是线程安全的,您已经了解了这一点。
第二个是数组列表。您需要询问如果多个线程想要更新同一个 arrayList,预期的行为是什么。在您不希望出现的情况下,Arraylists 会抛出 ConcurrentModificationException。
在这种情况下,您应该将 Collections.synchronizedList 或 CopyOnWriteArrayList 放入映射中。如果没有太多更新,后者是更好的选择。