兩者都是可重入鎖線程
1.synchronized的缺點it
1)當一個代碼被synchronized修飾的時候,一個線程獲取到了鎖,那麼其它線程須要等待這個鎖的釋放。鎖釋放只有兩種,要麼代碼執行完畢自動釋放,要麼發生異常後JVM會讓線程釋放鎖效率
2)讀和寫衝突,寫和寫衝突,讀和讀操做不會衝突,可是使用synchronized的話,一個線程讀,另外一個線程也只能等待。異常
3)使用該關鍵字時,沒法知道線程是否成功獲取到鎖sync
2.使用ReadWriteLock能夠提升多個線程進行讀操做的效率。synchronized