我有一个关于 ConcurrentHashMap 的问题。假设我有 2 个线程。
线程 A 尝试从共享 ConcurrentHashMap 中获取对象。
线程B清除共享映射。
如果线程 A 和线程 B 同时访问共享资源,会发生什么情况。我搜索了文档和网络,找不到明确的答案,也尝试自己做,但无济于事。
ConcurrentHashMap分为不同的segments基于并发级别。所以java中不同的线程可以并发访问不同的段。
线程可以读取被其他线程锁定的 ConcurrentHashMap 段吗
java中的线程?
是的。当线程锁定一个段进行更新时,它不会阻止它进行检索(通过 get 方法完成),因此其他线程可以读取该段(通过 get 方法),但它能够在锁定之前读取数据。
对于诸如putAll并发检索可能反映仅删除某些条目。
对于诸如clear并发检索可能反映仅删除某些条目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)