1樓:匿名使用者
hashmap,hashset,arraylist都不具備執行緒安全。可以用set s=collections.synchronizedset(new hashset());map m=collections.
synchronizedmap(new hashmap());list l=collections.synchronizedlist(new arraylist());獲得被同步後的版本。也可版以用concurrenthashmap等同步工具代替權
如何執行緒安全的使用hashmap
如何實現執行緒安全的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樓:十口相傳
// 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
python的多執行緒使用setDaemon有什麼意義
使用setdaemon 和守護執行緒這方面知識有關,比如在啟動執行緒前設定thread.setdaemon true 就是設定該執行緒為守護執行緒,表示該執行緒是不重要的,程序退出時不需要等待這個執行緒執行完成。這樣做的意義在於 避免子執行緒無限死迴圈,導致退不出程式,也就是避免樓上說的孤兒程序。t...
c中 有沒有執行緒安全的list類 以及 執行緒安全的set類
msdn說了,list類就是執行緒安全的。但是,他只負責list的執行緒安全,不能負責list元素訪問的執行緒安全。也就是說,他保證,對list進行元素的增加,刪除什麼的,是執行緒安全的。但對於其中的每個元素的內部資訊,比如屬性修改什麼的,他就沒有辦法管了。有的,concurrentbag list...
如何科學合理使用農藥,如何科學安全合理使用農藥
科學合理使用農藥,應從以下幾方面入手 1 遵守農藥安全使用規則 嚴格禁止劇毒 高毒 高殘留或具有三致性 致癌 致畸 致突變 的農藥在無公害農產品上使用。根據作物種類不同 安全程度要求不同,對某些農藥的使用範圍進行進一步的限制,如溴氰菊酯 三氯殺蟎醇,因為歐盟對進口茶葉標準的提高而限制或禁止使用。2 ...