我想知道是否需要同步或使用并发类,或者相反,在多线程环境中使用非并发类并且在地图上不进行同步是不是线程安全的,如果对地图的唯一修改正在改变地图.
我问这个的原因是HashMap(和其他非并发地图文档)有这样的评论:
请注意,此实现不同步.如果多个线程同时访问哈希映射,并且至少有一个线程在结构上修改了映射,则必须在外部进行同步.(结构修改是添加或删除一个或多个映射的任何操作;仅更改与实例已包含的键关联的值不是结构修改.)这通常通过同步自然封装映射的某个对象来完成. .
这让我相信如果修改不是结构性的(即没有添加或删除)我应该能够更新(非并发)地图sans同步.
我读这个是对的吗?即将地图中的值更新为原子过程吗?