concurrenthashmap

    2熱度

    3回答

    存在的關鍵在Java的ConcurrentMap,有remove(key, expectedValue),這將返回之一: 預期值在那裏,已被刪除。 期望值不存在,所以沒有被刪除。 但我希望得到的是一個: 預期值在那裏,已被刪除。 該鍵下有一個值,但不是預期的值,所以它沒有被刪除。 該密鑰下沒有任何值,所以它沒有被刪除。 如何以併發和線程安全的方式獲取此信息? 這是代碼我想safify // att

    2熱度

    2回答

    可能這對我來說很愚蠢,但我查看了ConcurrentHashMap的源代碼,但我無法看到該類中任何位置的方法lock()的定義,但是我可以看到此方法被多次援引。在Eclipse中,當我在lock()上說開放聲明時,它顯示類ReentrantLock.lock(),所以我很困惑這是如何工作的?對於lock()方法調用,ReentrantLock的對象引用在哪裏? V readValueUnderLo

    7熱度

    4回答

    併發Hashmap可以解決在hashmap中看到的同步問題。因此,如果我們使用hashmap同步密鑰工作,添加和刪除操作將會很快。如果多線程檢查併發HashMap大小,檢查HashMap大小如何?我們還需要synchronzation關鍵字:東西如下: public static synchronized getSize(){ return aConcurrentHashmap.size

    5熱度

    2回答

    我需要寫一個稍微具體實施高速緩存,它具有獨特的按鍵,但可以包含重複的值,例如: "/path/to/one" -> 1 "/path/to/two" -> 2 "/path/to/vienas" -> 1 "/path/to/du" -> 2 類需要提供非阻塞讀/重點查找,但也有典型的創建/更新/刪除mutators。例如,刪除值2應導致 "/path/to/one" -> 1 "/p

    1熱度

    2回答

    論ConcurrentHashMap.Segment在Java 1.6的集合庫設計: static final class Segment<K,V> extends ReentrantLock implements Serializable 恕我直言,一個給定的Segment是 - 不一個ReentrantLock,那麼爲什麼這個extends?這應該是一個組成: static final c

    3熱度

    2回答

    Java的java.util.Hashtable具有和java.util.HashMap相同的功能。他們的主要區別是Hashtable是線程安全的並且同步,而HashMap不是。從JDK5開始,我們有可用於多線程上下文的ConcurrentHashMap。它的性能比Hashtable更好。那麼我們有什麼理由在將來使用Hashtable?

    0熱度

    1回答

    我與JVM堆麻煩 我們經營與Apache HTTP服務器一個網站和一個Apache Tomcat應用。服務器 所有* .JSP請求Apache HTTP服務器將被重定向到Tomcat服務器(協議:AJP)。 該網站擁有超過10,000 jsp文件 我們有也谷歌搜索設備,它爬行網站每晚。 雖然它爬行時,JVM堆空間上升到8 GB的最大限制。 隨着javamelody,我可以看到堆空間增加模擬到加載的

    1熱度

    1回答

    我有一個無狀態Java應用程序部署到一個tomcat Web服務器。由於數據的性質,在任何給定時間,所有http線程都必須處理不同的密鑰(換言之:所有線程必須處理不同的密鑰)。 因此,我寫了一個模塊,如果請求的關鍵字是當前正在進行的(由此之前的http帖子)http隊列隊列。我只會繼續處理當前的http帖子,一旦以前的http帖子使用相同的密鑰完成了它的過程。 我寫了一個簡單的while循環與co

    1熱度

    2回答

    考慮以下兩種情況: 一個地圖,你會在開始填充一次,然後會從許多不同的線程訪問。 一個地圖,你會因爲這將來自許多不同的線程同時訪問的高速緩存來使用。您希望避免計算將存儲在映射中的結果,除非它不存在,get-computation-store塊將被同步。 (和地圖,否則不會被使用) 在這兩種情況下,確實ConcurrentHashMap你在任何線程安全方面的額外普通HashMap以上優惠?

    2熱度

    4回答

    我寫了一個股票市場模擬器,它使用一個ConcurrentHashMap作爲緩存。 緩存容納大約75個元素,但它們更新和檢索得非常快(每秒約500次)。 這裏是我做過什麼: 主題1: 連接到爲我提供串流報價爲給定的股票代碼的外部系統。 線程2(回調線): 等到數據被外部系統交付給它。一旦獲取數據,它就會解析數據,創建一個不可變的DataEntry對象,將其緩存起來並向thread3發送一個信號。 線