【发布时间】:2018-01-31 23:54:04
【问题描述】:
用下一组在不同线程中执行foreach、add、remove、size操作安全吗?
private final Set<MyObject> myConcurrentHashSet = ConcurrentHashMap.newKeySet();
即我不需要在 foreach 或 size 操作中获得最大的准确性,但我需要确保在执行 foreach / add / remove / size 操作时不会出现任何异常。
我知道 ConcurrentHashMap 是线程安全的,但我对其 Set 的线程安全感到困惑。
【问题讨论】:
-
@Yogesh_D 它不是重复的,他询问有关 concurrentHashMap 上的 Set 视图,该视图没有很好地记录。 newKeysSet() 的注释文档很差。
-
@KrzysztofCichocki “但我需要确保在执行 foreach / add / remove / size 操作时不会出现任何异常。”因为这个。
标签: java multithreading concurrency thread-safety java.util.concurrent