1.讀寫鎖
用于多個(gè)線程從中讀取數(shù)據(jù),很少線程從中寫數(shù)據(jù)。
ReentrantLock
ReentrantReadWriteLock:

圖片發(fā)自簡(jiǎn)書App
2.阻塞隊(duì)列
LinkedBlockingQueue/LinkedBlockingDeque
ArrayBlockingQueue
PriorityBlockingQueue
DelayQueue/Delayed
BlockingQueue/BlockingDeque
3.線程安全的集合
concurrentHash
concurrentSkipListMap
concurrentSkipListSet
concurrentLinkedQueue
寫數(shù)組拷貝:CopyOnWriteArrayList,CopyOnWriteArraySet
Vector與HashTable被棄用,取而代之的是CopyOnWriteArrayList與HashMap。任何集合類通過(guò)集合同步包裝器變成同步集合:Collections.synchronisedList(new ArrayList<>())
Collections.synchronisedMap(new HashMap<>())
并發(fā)訪問(wèn)不同的桶,使用concurrent包定義的集合不會(huì)阻塞,例外:數(shù)組列表頻繁被修改使用同步ArrayList,而不是CopyOnWriteArrayList。
Callable與Future與FutureTask
執(zhí)行器: