小知識:hashset的底層是hashmap,拋棄了value只用了key
示例**:
public class listdemo
}).start();
}// 休眠等待執行緒跑完
thread.sleep(100);
// 輸出集合數量
system.out.println("list的數量為:"+list.size());}}
示例結果:
使用collections.synchronizedset(new hashset<>());將set轉換為安全的set
但是無論是讀取還是寫入,它都會進行加鎖,當我們併發級別特別高,執行緒之間在任何操作上都會進行等待,因此在某些場景中它不是最好的選擇。
copyonwritearrayset 用的就是 copyonwritearraylist,看源**
關於copyonwritearraylist 翻看之前的:不安全的集合類arraylist
不安全的集合類Map
示例 public class listdemo start 休眠等待執行緒跑完 thread.sleep 100 輸出集合數量 system.out.println map的數量為 map.size 示例結果 使用collections.synchronizedmap newhashmap 將ha...
JUC 集合不安全類
juc arraylist底層是乙個陣列,預設大小10,超過就擴容,擴原值的一半10 5 15 執行緒不安全,因為add方法沒有加鎖。不安全案例 public class containernotsafedemo string.valueof i start 參考 add原始碼 public boo...
集合 HashMap的不安全
1.hashmap存在的問題 public static void main string args throws interruptedexception system.out.println t1 over thread t2 new thread system.out.println t2 o...