gpt4 book ai didi

java - 是 ConcurrentHashMap 类比 CopyOnWriteArrayList

转载 作者:搜寻专家 更新时间:2023-11-01 01:44:21 26 4
gpt4 key购买 nike

我经常使用 CopyOnWriteArrayList

  • 线程执行大量读取
  • 线程执行一些写操作

但是,我将在 Collections.synchronizedList() 时使用

  • 线程执行一点读取
  • 线程执行大量写入

这是因为根据 CopyOnWriteArrayList Java Doc

A thread-safe variant of ArrayList in which all mutative operations (add, set, and so on) are implemented by making a fresh copy of the underlying array.

This is ordinarily too costly, ...

谈到 ConcurrentHashMap 时,我想知道我是否仍然可以应用相同的逻辑来选择 ConcurrentHashMap 而不是 Collections.synchronizedMap()

每次我执行写操作时,ConcurrentHashMap 是否都会为底层数据结构创建一个新副本?如果写操作多于读操作,它会比 Collections.synchronizedMap 性能差吗?

最佳答案

不,ConcurrentHashMap 不会创建底层数据结构的新副本。

ConcurrentHashMap 是一个分段映射,分段数基于并发级别。当您写入一个段时,它会被锁定,直到写入完成。

关于java - 是 ConcurrentHashMap 类比 CopyOnWriteArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15943436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com