当前位置: 首页 > 面试题库 >

Java中的ConcurrentHashMap和Hashtable

洪博艺
2023-03-14
问题内容

Java中的ConcurrentHashMap和Hashtable有什么区别?

对于线程化应用程序,哪个更有效?


问题答案:

ConcurrentHashMap使用多个存储桶来存储数据。这样可以避免读取锁定,并大大提高了性能HashTable。两者都是线程安全的,但是使用显然可以赢得性能ConcurrentHashMap

ConcurrentHashMapusing 读取时get(),没有锁,与之相反HashTable,所有操作都只是简单地同步了。
HashTable在Java的旧版本中发布,而ConcurrentHashMapJava 5+ 则是。

HashMap 在单线程应用程序中使用是最好的选择。



 类似资料:
  • 问题内容: Java 的用途是什么?有什么好处?它是如何工作的?示例代码也将很有用。 问题答案: 关键是要提供线程安全的实现。多个线程可以对其进行读写,而没有机会接收到过时或损坏的数据。 提供自己的同步,因此您不必显式同步对其的访问。 的另一个功能是它提供了该方法,如果指定的键不存在,它将 自动 添加一个映射。考虑以下代码: 此代码不是线程安全的,因为另一个线程可以在到和的调用之间添加映射。正确的

  • 本文向大家介绍Java中HashTable和ConcurrentHashMap之间的区别,包括了Java中HashTable和ConcurrentHashMap之间的区别的使用技巧和注意事项,需要的朋友参考一下 并发Hashmap是在jdk1.5中引入的类。并发哈希映射仅在添加或更新映射时在称为片段的存储桶级别应用锁。因此,并发哈希映射允许对映射进行并发读写操作。  HashTable是在Jdk1

  • 本文向大家介绍ConcurrentHashMap 和 Hashtable 的区别?相关面试题,主要包含被问及ConcurrentHashMap 和 Hashtable 的区别?时的应答技巧和注意事项,需要的朋友参考一下 ConcurrentHashMap 和 Hashtable 的区别主要体现在实现线程安全的方式上不同。 底层数据结构: JDK1.7的 ConcurrentHashMap 底层采用

  • 我观察到ConcurrentHashMap在Java 8中被完全重写,使其更加“无锁”。我已经浏览了方法的代码,看到没有明确的锁定机制: 问题: 既然代码不在同步保护伞下(这会强制执行一个发生在之前的关系),那么如何从一个线程看到其他线程对该哈希图所做的修改? 注意:整个ConcurrentHashMap是一个表的包装:< code> transient volatile节点 所以是对数组的易失性

  • 本文向大家介绍Java ConcurrentHashMap-clear(),包括了Java ConcurrentHashMap-clear()的使用技巧和注意事项,需要的朋友参考一下 clear函数用于清除键值对之间的映射。这样,将清除ConcurrentHashMap映射。 语法 让我们看一个例子- 示例 输出结果 名为Demo的类包含主要功能。在这里,将创建Map的新实例,并使用“ put”功

  • JDK1.7 ConcurrentHashMap的锁分段技术:假如容器里有多把锁,每一把锁用于锁容器其中一部分数据,那么当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而可以有效的提高并发访问效率,这就是ConcurrentHashMap所使用的锁分段技术。首先将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访