ConcurrentHashMap 读、写和清除()

问题描述 投票:0回答:3

假设有3个读线程和1个写线程。 写入线程调用map.clear()。会造成什么异常或影响?

java java.util.concurrent concurrenthashmap
3个回答
2
投票

clear
方法将清除整个地图,即删除所有条目。

考虑到并发性,对于 reading 操作,没有任何变化。他们只会读取地图在访问该地图时所具有的值。然而,对于使用 writing 操作的其他线程,

ConcurrentHashMap
会自动等待
clear
操作完成,这样您就不会遇到非同步并发带来的奇怪的影响


仔细阅读官方文档,它解释了所有效果:ConcurrentHashMap Java-Doc


0
投票

如果您在没有任何同步的情况下清除并发哈希图,则最终可能会导致应用程序卡住,例如502 代理错误。 当线程写入地图并发生清除时,您会得到一些您不喜欢的东西。


-1
投票

正如其名称所示,它将清除地图。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.