不安全的集合類Set

2021-10-09 03:09:46 字數 673 閱讀 8890

小知識: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...