簡體   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