1. hashmap,treemap 未進行同步考慮,是執行緒不安全的。
2. hashtable 和 concurrenthashmap 都是執行緒安全的。區別在於他們對加鎖的範圍不同,hashtable 對整張hash表進行加鎖,而concurrenthashmap將hash表分為16桶(segment),每次只對需要的桶進行加鎖。
3. collections 類提供了synchronized***()方法,可以將指定的集合包裝成執行緒同步的集合。比如,
list list = collections.synchronizedlist(new arraylist());
set set = collections.synchronizedset(new hashset());
執行緒安全與執行緒不安全
執行緒安全是針對多執行緒來講的,如果所使用的公用變數在多執行緒下沒有被保護機制時,變數結果會和理論值不一致,這樣就叫作執行緒不安全,相反公用變數在保護機制下工作,就不會出現 隨機 變化,這時叫執行緒安全。執行緒安全 在多執行緒中使用時,不用自已做同步處理.執行緒不安全 在多執行緒中使用時,必須做執行...
執行緒安全與執行緒不安全
執行緒安全是針對多執行緒來講的,如果所使用的公用變數在多執行緒下沒有被保護機制時,變數結果會和理論值不一致,這樣就叫作執行緒不安全,相反公用變數在保護機制下工作,就不會出現 隨機 變化,這時叫執行緒安全。執行緒安全 在多執行緒中使用時,不用自已做同步處理.執行緒不安全 在多執行緒中使用時,必須做執行...
Java執行緒安全和非執行緒安全
arraylist是非執行緒安全的,vector是執行緒安全的 hashmap是非執行緒安全的,hashtable是執行緒安全的 stringbuilder是非執行緒安全的,stringbuffer是執行緒安全的 什麼是執行緒安全?執行緒安全和非執行緒安全有什麼區別?分別在什麼情況下使用?非執行緒安...