concurrenthashmap

    1熱度

    1回答

    爲什麼我不能克隆ConcurrentHashMap? ConcurrentHashMap<String, String> test = new ConcurrentHashMap<String, String>(); test.put("hello", "Salaam"); ConcurrentHashMap<String, String> test2 = (Concurre

    0熱度

    1回答

    ConcurrentHashMap是線程安全的,因此我們可以在迭代時更新map的值。但是下面的程序輸出並不如我預期的那樣。的上面的代碼 Map concurrentHashMap = new ConcurrentHashMap<(); concurrentHashMap.put("0", "b"); Iterator iterator = concurrentHashMap.entrySet(

    2熱度

    2回答

    我有一個應該從隊列中提供地圖的方法,只有在地圖大小不超過某個數字的情況下才會這樣做。這提示了併發性問題,因爲我從每個線程獲得的大小並不全面。我通過這段代碼 import java.sql.Timestamp; import java.util.Date; import java.util.concurrent.ConcurrentHashMap; public class Concurre

    1熱度

    1回答

    很久以前我很頭疼,希望有一些幫助。 我想存儲很多Task與ConcurrentSkipListMap其中內部是ConcurrentHashMap稱爲多段鎖。 這個簡單的例子代碼顯示使用Scala(Java也可讀): val tasks = new ConcurrentSkipListMap[TaskKey, Task]() 參閱類簡單: class TaskKey(id: String, syst

    4熱度

    2回答

    當我使用ConcurrentHashMap時,我需要知道何時應該在代碼中添加一些同步塊。比方說,我有一個方法,如: private static final ConcurrentMap<String, MyObjectWrapper> myObjectsCache = new ConcurrentHashMap<>(CACHE_INITIAL_CAPACITY); public Lis

    0熱度

    1回答

    這是一個有效的代碼來寫,如果我想避免不必要的包含調用? 我希望避免每次調用都包含調用,因爲這是對時間敏感的代碼。 cancelretryCountMap.putIfAbsent(tag,new AtomicInteger(0)); count = cancelretryCountMap.get(tag).incrementAndGet(); if(count > 10){ ///ab

    1熱度

    1回答

    在這裏我有哈希表和併發哈希映射的代碼示例,它不允許空鍵作爲對象,但都是同步的。 public class Example { public static void main(String[] args) { ConcurrentHashMap<String,String> premiumPhone = new ConcurrentHashMap<Str

    5熱度

    2回答

    字符串實習生方法我看着從JavaDays代碼,作者說,這種做法有可能是用於存儲像模擬字符串轉換爲字符串實習生方法 public class CHMDeduplicator<T> { private final int prob; private final Map<T, T> map; public CHMDeduplicator(double prob) {

    1熱度

    3回答

    我有一個ConcurrentHashMap和一個方法,在地圖中放入一個字符串,然後我根據插入的值在一個同步塊中執行一些操作。 putIfAbsent返回與指定鍵關聯的先前值,或者null如果沒有映射的關鍵 - 根據官方文檔 但是也有一些基於putIfAbsent是否返回空執行2個行動或不。 現在這裏是訣竅。我想要第一個動作(當putIfAbsent返回null)首先被執行,並且所有其他線程被擱置。

    0熱度

    3回答

    我使用Eclipse IDE來爲java編程。 我寫了一個類來顯示名稱是否在CuncurrentHashMap中,我的IDE沒有顯示任何錯誤,但是每當我運行我的程序時,我都沒有得到我想要的輸出。我期望的輸出是使查詢名稱「Jerry」大寫。我只是在學習java中的先進原則,我熟悉基本概念,但我願意對下面對我的編碼風格所做的任何更正或批評。 package learnJavaPackages; i