Java多執行緒之同步容器與併發容器

2021-07-22 12:00:49 字數 542 閱讀 6471

vector

hashtable

collections.synchronziedxx

基於hashtable,

段segement,最大16個

把粒度分細,

每個段有自己的鎖

共享變數用volatile關鍵字,第一時間獲得修改資料。從主記憶體讀取,不從工作記憶體讀取

jdk有兩種cow容器

copyonwritearraylist

copyonwritearrayset

copyonwrite容器,寫時複製容器。當我們往乙個容器加元素時,不直接想當前容器新增,而是先複製當前容器,得出乙個新容器,再往新容器加元素,加完後,再將原來容器的引用,指向新容器

這樣的好處是,可以對copyonwrite容器進行併發讀,而不需要加鎖,因為當前容器不會新增任何元素

這是一種讀寫分離的思想,讀和寫在不同的容器

適合讀多寫少場景

併發容器提公升了同步容器的效能,但不是說,併發容器就能解決所有併發問題

Java多執行緒之同步集合和併發集合

同步集合類 hashtable vector 同步集合包裝類,collections.synchronizedmap 和collections.synchronizedlist 併發集合類 concurrenthashmap copyonwritearraylist copyonwritehashs...

JAVA併發程式設計之多執行緒併發同步業務場景與解決方案

假如現在有20個人去售票廳買票,但是只有2個視窗,那麼同時只能有2個人買票,當2個人任意乙個人買好票離開之後,等待的18個人中又會有乙個人可以占用視窗買票 拆解 20個人就是20個執行緒 2個視窗就資源 實際含義就是 怎麼控制同一時間併發數為2 semaphore 訊號量 控制併發執行緒數 注意使用...

Java多執行緒之執行緒安全策略 同步容器

同步容器只是執行緒安全性更好一些,在 執行邏輯中並不一定是執行緒安全的。也就是同步容器本身是執行緒安全的,但是主要還是注意你的 邏輯。一 非執行緒安全的集合對應的同步容器 vector實現了 list 介面,vector 裡面的方法都是用 sync 修飾過的。stack也是同步容器,也是使用 syn...