比如vector、hashtable、treemap (支援排序),原理是在所有公共方法上加synchronized關鍵字(高併發不用)。再併發修改(迭代過程中併發修改了內容)的情況下要加鎖保護操作,否則會報concurrentmodificationexception。
copyonwritearraylist代替vector,concurrenthashmap代替hashtable ,concurrentskiplistmap代替treemap ;還有佇列quence
concurrenthashmap提高併發效率的原理是縮小鎖的粒度,最多分成16段(16個鎖)。
copyonwritearraylist/copyonwritearrayset(寫時複製,讀寫分離) 原理是需要更新容器中的資料的時候,會複製乙份新容器,更新操作的是新容器,最後將原容器索引指向新容器。
高併發之同步容器
一 採用傳統的方法 經典面試題 寫乙個固定容量的容器,擁有put和get方法,以及getcount方法 能夠支援2個生產者執行緒以及10個消費者執行緒的阻塞呼叫 點 生產者消費者模式 如果呼叫 get方法時,容器為空,get方法就需要阻塞等待 如果呼叫 put方法時,容器滿了,put方法就需要阻塞等...
同步類容器和併發類容器
同步類容器都是執行緒安全的,但是某些場景下可能需要加鎖來保護復合操作。復合類操作如 迭代 反覆訪問元素,遍歷完容器中所有的元素 跳轉 根據指定的順序找到當前元素的下乙個元素 以及條件運算。這些復合操作在多執行緒併發地修改容器時,可能會表現出意外的行為,最經典的便是concurrentmodifica...
同步類容器和併發類容器
同步類容器都是執行緒安全的,但在某些場景下可能需要加鎖來保護復合操作。復合類操作。如 迭代 反覆訪問元素,遍歷完容器中所有的元素 跳轉 根據指定的順序找到當前元素的下乙個元素 以及條件運算。這些復合操作在多執行緒併發地修改容器時,可能會表現出意外的行為,最經典的便是concurrentmodific...