?????? 本篇為大家講解解決多線程線程安全問題的另一種思路,同步鎖:synchronized和ReentrantLock。二者都是鎖機(jī)制實(shí)現(xiàn)線程安全,但ReentrantLock的使用更加靈活,更有讀寫分離鎖,適用于讀多寫少的場景。下面為大家演示二者的使用模版。
?????? 一、synchronized(同步方法體、同步方法塊)

?????? 二、ReentrantLock(使用靈活,加鎖之后一定要在finally釋放鎖)

?????? 接下來著重看下ReentrantLock的源碼實(shí)現(xiàn),思想就是CAS:Compare And Swap,即比較然后交換。


?????? 劃重點(diǎn):ReentrantLock使用更加靈活,更有讀寫分離鎖。使用CAS實(shí)現(xiàn)原理:Compare And Swap?;贑AS實(shí)現(xiàn)多線程并發(fā)安全的工具類還有java.util.concurrent包下的類,比如:ConcurrentHashMap、AtomicInteger。最后需要深入了解下同步器原理。