gpt4 book ai didi

java - 单线程应用程序中的 Hashtable 与 HashMap 性能

转载 作者:行者123 更新时间:2023-12-01 14:06:23 28 4
gpt4 key购买 nike

我知道 Hashtable 是同步的,所以在多线程应用程序中使用是安全的,而 HashMap 不是。

我想知道在单线程应用程序中这两者之间是否有任何性能差异。

(或者,什么时候使用一个而不是另一个?)

最佳答案

如果您想要一个线程安全的集合,您可以将 ConcurrentHashMap 或 Collections.synchronizedMap() 与 LinkedHashMap 或 HashMap 一起使用。如果您不需要线程安全集合,您可以只使用最后两个。 Hashtable 已经被改造为支持带有泛型的 Map,但它也带有许多遗留方法,它们可以做同样的事情或几乎相同的事情。

可以使用哈希表,但是恕我直言,使用后来开发的许多其他选项之一将是一个更清洁的解决方案。如果您有一个需要 Hashtable 的库,那么您需要使用它,否则我将使用一个可以满足您需求的类,并遵循最佳实践并使用最少的遗留方法。

每次调用的性能差异可能约为 0.5 us。这可能重要也可能不重要。

但是,如果您不需要类型是线程安全的,则没有充分的理由使用同步版本。如果你需要一个类型是线程安全的,你不能使用一个不是没有一些线程安全保护的类型。

关于java - 单线程应用程序中的 Hashtable 与 HashMap 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6553067/

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