假设您需要线程间共享的无序Set
元素。由CopyOnWriteArraySet
创建的选项ConcurrentHashMap
和Set
- 支持Collections.newSetFromMap(new ConcurrentHashMap<E, Boolean>())
。两者都是线程安全的,两者都可以安全迭代而不抛出ConcurrentModificationException
,但与地图支持的不同,CopyOnWriteArraySet
在变异操作上具有O(n)
复杂性。
所以问题是CopyOnWriteArraySet
哪种情况真的更好?
提前致谢!