1.CopyOnWriteArrayList
CopyOnWriteArrayList適合使用在讀操作遠遠大於寫操作的場景裏,比如緩存。
2.ReadWriteLock
ReadWriteLock 當寫操作時,其他線程無法讀取或寫入數據,而當讀操作時,其它線程無法寫入數據,但卻可以讀取數據 。適用於 讀取遠遠大於寫入的操作。
3.ConcurrentHashMap
ConcurrentHashMap是一個線程安全的Hashtable,它的主要功能是提供了一組和Hashtable功能相同但是線程安全的方法。ConcurrentHashMap可以做到讀取數據不加鎖,並且其內部的結構可以讓其在進行寫操作的時候能夠將鎖的粒度保持地儘量地小,不用對整個ConcurrentHashMap加鎖。
ConcurrentHashMap與Hashtable相比:
因爲hastable是對整個代碼塊加鎖,而concurrenthasmap是使用分片鎖,粒度較小,不用對整個代碼塊加鎖,提高了讀寫速率
4.volatile volatile只能保證變量的安全,不能保證線程的安全