同步容器和併發容器

2022-02-09 02:24:10 字數 589 閱讀 7011

同步容器和併發容器:

vector 執行緒安全,在方法上加synchronized

arraylist

collections 工具類

hashtable 執行緒安全,在方法上加synchronized

hashmap

併發容器:

copyonwritearraylist:當寫的時候,就複製。

缺點:1、因為是基於拷貝複製實現的,所有記憶體占用會變大。

2、因為在寫和刪除的時候,會加鎖,因此當執行緒併發寫的時候,會產生阻塞問題。導致資料的最終一致性,而不是強一致性。

concurrenthashmap: 降低鎖的粒度。

佇列:先進先出(fifo : first input first outpu)

非阻塞佇列:

concurrentlinkedqueue: 併發的解決方式:cas(比較的是指標)

阻塞佇列:(如果佇列中沒有元素,則阻塞等待元素的到來。)

介面:blockingqueue,阻塞的方法:put,take

實現:arrayblockingqueue:基於陣列

linkedblockingqueue:基於鍊錶

同步容器與併發容器

同步容器 可以簡單地理解為通過synchronized來實現同步的容器,如果有多個執行緒呼叫同步容器的方法,它們將會序列執行。比如vector,hashtable 早起jdk的一部分 及collections.synchronized 等方法返回的容器。可以通過檢視vector,hashtable等...

同步容器與併發容器

同步容器 可以簡單地理解為通過synchronized來實現同步的容器,如果有多個執行緒呼叫同步容器的方法,它們將會序列執行。比如vector,hashtable 早起jdk的一部分 及collections.synchronized 等方法返回的容器。可以通過檢視vector,hashtable等...

同步類容器和併發類容器

同步類容器都是執行緒安全的,但是某些場景下可能需要加鎖來保護復合操作。復合類操作如 迭代 反覆訪問元素,遍歷完容器中所有的元素 跳轉 根據指定的順序找到當前元素的下乙個元素 以及條件運算。這些復合操作在多執行緒併發地修改容器時,可能會表現出意外的行為,最經典的便是concurrentmodifica...