java - concurrentHashMap 和 hashtable 中使用的锁定机制

标签 java

最近在 java 面试中有人问我这个问题。 我稍后尝试搜索它,但找不到确切的答案。 如果任何人有答案的链接,请告诉我。 所以这是我的问题:

ConcurrentHashMap 和 Hashtable 是同步的。 但是它在写操作期间使用哪种锁定机制而锁定。

最佳答案

开源的伟大之处在于您可以查找 the source code ! This bit尤其相关。

ConcurrentHashMap 中的并发性非常复杂 - 它将内容分解为 Segment 以避免锁定整个表,并使用 volatile 字段允许无锁并发阅读。

关于java - concurrentHashMap 和 hashtable 中使用的锁定机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32667786/

相关文章:

java - 使用 Spring Boot 缓存用户详细信息

java - 在 Web 应用程序中验证用户身份的最佳方式

java - 如何传递用户名和密码来调用restful web服务

java - 如何在 Primefaces tabView 中设置 Activity 选项卡?

java - setTime() 抛出空指针异常

java - 如何让 FeignClient 使用名称而不是 url?

java - android 如何使用 SharedPreference 编写秒表

JAVA:sqlite写几条记录后抛出异常?

java - 返回的正确 HTTP 错误代码是 404 还是 412?

java - 未发现线路错误,但我不明白怎么办?