ConcurrentHashMap:線程安全的HashMap的實現
CopyOnWriteArrayList:線程安全且在讀操作時無鎖的ArrayList
CopyOnWriteArraySet:基於CopyOnWriteArrayList,不添加重復元素
ArrayBlockingQueue:基於數組、先進先出、線程安全,可實現指定時間的阻塞讀寫,並且容量可以限制
LinkedBlockingQueue:基於鏈表實現,讀寫各用壹把鎖,在高並發讀寫操作都多的情況下,性能優於ArrayBlockingQueue
2、原子類
AtomicInteger:線程安全的Integer,基於CAS(無阻塞,CPU原語),優於使用同步鎖的Integer
3、線程池
ThreadPoolExecutor:壹個高效的支持並發的線程池,可以很容易的講壹個實現了Runnable接口的任務放入線程池執行,但要用好這個線程池,必須合理配置corePoolSize、最大線程數、任務緩沖隊列,以及隊列滿了+線程池滿時的回絕策略,壹般而言對於這些參數的配置,需考慮兩類需求:高性能和緩沖執行。
Executor:提供了壹些方便的創建ThreadPoolExecutor的方法。
FutureTask:可用於異步獲取執行結果或取消執行任務的場景,基於CAS,避免鎖的使用
4、鎖
ReentrantLock:與synchronized效果壹致,但是又更加靈活,支持公平/非公平鎖、支持可中斷的鎖、支持非阻塞的tryLock(可超時)、支持鎖條件等,需要手工釋放鎖,基於AbstractQueueSynchronizer
ReentrantReadWriteLock:與ReentrantLock沒有關系,采用兩把鎖,用於讀多寫少的情形