繁体   English   中英

我应该使用ConcurrentHashMap或Hashmap还是SynchronizedMap?

[英]Should I use ConcurrentHashMap or Hashmap or SynchronizedMap?

我在多线程代码之外创建了一个哈希表。 以后,此hasmap中将不会有任何更改。

在此之后,我将启动两个线程,这两个线程都将从该哈希图中读取(是的,仅读取操作)。 如果thread1正在从我的hashmap对象读取,则线程2也可以同时读取吗? 还是我需要Concurrenthashmap或任何其他版本的Map?

不,您不需要并发的Hash映射。但是仅因为您不进行任何修改即可。 您可以毫无问题地阅读相同内容。

如果线程1正在从我的哈希映射对象中读取,线程2是否也可以同时读取?

如果确定没有写操作,则根本不需要使用“同步”选项。

您还可以使用不可变地图

一个地图,其内容永远不会改变,其其他重要属性在ImmutableCollection中进行了详细介绍

如果只需要读操作,则无需使用同步。如果创建后未进行任何写操作,则使其不可变,因此没有主体可以更改它。不需要同步。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM