同步容器和併發容器:
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...