天天看點

談談Java的讀寫鎖-鎖降級和鎖更新

讀寫鎖ReadWriteLock支援鎖降級:

  • 擷取寫鎖,擷取讀鎖,釋放寫鎖,釋放讀鎖
  • 鎖降級可解決單線程下寫讀不一緻的場景,即寫i=1,後讀出來i=2。雖然沒有什麼大問題,但是不滿足單線程下的as-if-serial語義,即按照程式編寫的順序,寫i=1操作在前,讀i的值在後
  • 鎖保持了原子性和可見性