1. 程式人生 > >synchronized和ReentrantLock的區別

synchronized和ReentrantLock的區別

sync ant 既然 word 變量 信息 log 死鎖 機制

synchronized和ReentrantLock的區別

synchronized是和if、else、for、while一樣的關鍵字,ReentrantLock是類,這是二者的本質區別。

既然ReentrantLock是類,那麽它就提供了比synchronized更多更靈活的特性,可以被繼承、可以有方法、可以有各種各樣的類變量,ReentrantLock比synchronized的擴展性體現在幾點上:

(1)ReentrantLock可以對獲取鎖的等待時間進行設置,這樣就避免了死鎖

(2)ReentrantLock可以獲取各種鎖的信息

(3)ReentrantLock可以靈活地實現多路通知

另外,二者的鎖機制其實也是不一樣的:ReentrantLock底層調用的是Unsafe的park方法加鎖,synchronized操作的應該是對象頭中mark word.

synchronized和ReentrantLock的區別