gpt4 book ai didi

java - ConcurrentHashmap 同时进行写入和获取操作

转载 作者:搜寻专家 更新时间:2023-11-01 01:25:06 24 4
gpt4 key购买 nike

我有一个关于 ConcurrentHashMaps 的问题。假设我有 2 个线程。线程 A 尝试从共享的 ConcurrentHashMap 中获取对象。线程 B 清除共享映射。如果线程 A 和线程 B 同时访问共享资源会发生什么情况。我搜索了文档和网络,找不到明确的答案,也尝试自己做,但无济于事。

最佳答案

ConcurrentHashMap 根据并发级别分为不同的。所以java中不同的线程可以同时访问不同的段。

Can threads read the segment of ConcurrentHashMap locked by some other thread in java?

是的。当线程锁定一个段以进行更新时,它不会阻止它进行检索(通过 get 方法完成),因此其他一些线程可以读取该段(通过 get 方法),但它能够在锁定之前读取数据。

对于诸如putAll 之类的操作,并发检索可能只反射(reflect)了某些条目的删除。对于诸如clear 之类的操作,并发检索可能反射(reflect)仅删除了一些条目。

关于java - ConcurrentHashmap 同时进行写入和获取操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40212950/

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