如何執行緒安全的使用,如何執行緒安全的使用HashMap

2021-04-18 23:25:18 字數 2638 閱讀 1427

1樓:十口相傳

// synchronizedmap方法

62616964757a686964616fe4b893e5b19e31333363373763

public static mapsynchronizedmap(mapm)

// synchronizedmap類

private static class synchronizedmap

implements map, serializable

synchronizedmap(mapm, object mutex)

public int size()

}public boolean isempty()

}public boolean containskey(object key)

}public boolean containsvalue(object value)

}public v get(object key)

}public v put(k key, v value)

}public v remove(object key)

}// 省略其他方法}

如何實現執行緒安全的hashmap

2樓:匿名使用者

public class maptest catch (interruptedexception ex)

system.out.println(iterator.nextelement());}}

}).start();

new thread(new runnable() catch (interruptedexception ex)

system.out.println(iterator.nextelement());}}

}).start();}}

這是沒有異常**

public class maptest catch (interruptedexception ex)

system.out.println(iterator.next());}}

}).start();

new thread(new runnable() catch (interruptedexception ex)

system.out.println(iterator.next());}}

}).start();}}

這裡是有異常**,iterator 時產生異常的主要原因,iterator建立的時候會拿到建立時容器的容量,一個整形資料。 讀取的時候就拿這個容量資料先去檢查是不是和當前實際容量相等,如果不相等就concurrentmodificationexception異常,相等就開始讀資料,所謂執行緒安全就是一個執行緒在使用iterator 讀資料的時候,另外執行緒往裡加資料,結果就出現iterator 儲存的容器容量和當前實際容量不等了,就不安全了。

而在hashtable中使用了enumeration這個執行緒安全的物件,就是說在另外的執行緒里加東西的時候他會知道當前容器已經改變,所以使用他是執行緒安全的。

如果樓主還不明白去開下源**就知道了。

3樓:匿名使用者

map m = collections.synchronizedmap(new hashmap());即可

4樓:day忘不掉的痛

直接用hashtable,hashtable執行緒安全。

我一般都會hashmap凡是在一個方法內部new並且不傳到方法外面的基本上可以用hashmap,執行緒不安全的時候用currenthashmap。

比如類屬性是map或者靜態屬性map而且會在不同的執行緒併發執行操作map時。

5樓:匿名使用者

hashtable不就可以嗎。

如何讓hashmap變成執行緒安全的

如何執行緒安全的使用hashmap

6樓:匿名使用者

concurrenthashmap 只是保證本身map的執行緒安全,不保證你自己寫的程式的同步. 你可以採用客戶端加鎖實現同步 synchronized(test.chm)

hashmap 是執行緒安全的嗎

hashmap是執行緒安全還是不安全的

7樓:匿名使用者

string, interger這樣

du了,而且

hashmap是執行緒安全的嗎,為什麼不是執行緒安全的

8樓:陳俊材

我之前在講課bai中,給學生強

du調這個問題,zhi這個是必

dao需要會的,面試中90%的機會會內問到你其實就容是hashmap hashtable區別1、前者非執行緒安全,後者執行緒安全

2、前者效率高,後者低(如果說到非執行緒安全,你可以閉著眼睛,下一點就說他的效率高,這是相對的)

3、其實是不是執行緒安全,你可以檢視源**,他裡面的一些對元素變動的方法中,有沒有這個關鍵字:synchronized

如何執行緒安全的使用hashmap

如何設計執行緒安全的 hashmap

如何使用java多執行緒處理http請求,求思路

雲端計算也分很多種型別,也需要看哪種型別,目前我只能從你之前的介紹來猜測你的需版 求是計算密權集型。那麼這種一般來說,前端介面提供三個功能 23也可以合併 1 提交請求 就是把請求儲存在伺服器,然後等著後臺批處理系統去搞定它 2 查詢處理狀態 查詢下之前提交的某請求處理得怎麼樣了,比如總共處理多久了...

如何科學合理使用農藥,如何科學安全合理使用農藥

科學合理使用農藥,應從以下幾方面入手 1 遵守農藥安全使用規則 嚴格禁止劇毒 高毒 高殘留或具有三致性 致癌 致畸 致突變 的農藥在無公害農產品上使用。根據作物種類不同 安全程度要求不同,對某些農藥的使用範圍進行進一步的限制,如溴氰菊酯 三氯殺蟎醇,因為歐盟對進口茶葉標準的提高而限制或禁止使用。2 ...

如何正確使用安全帶

內容來自使用者 倔強的春芽 安全帶是為防止施工人員高空墜落而配備的保護裝備,安全帶必須系在牢固可靠的部位,該部位應該能滿足承受人體荷載。高層施工,2人死亡 8月13日上午,邯鄲市一小區發生一起施工人員高空作業墜樓事件。據知情居民介紹,8月13日上午10時左右,有兩名施工人員正在小區四樓外牆處貼瓷磚,...