Lock接口和ReentrantLock類

一、Lock的一般用法

Lock l = ...;
l.lock();
try {
    // access the resource protected by this lock
} finally {
    l.unlock();
}

二、Lock中的方法

  1. lock():獲取鎖
  2. unlock():釋放鎖
  3. newCondition():返回一個綁定到這個鎖對象實例的一個Condition實例
  4. tryLock():僅當鎖未被其他線程佔有時才能獲取到並返回true,否則返回false
  5. lockInterruptibly():獲取鎖並且能在獲取鎖時被打斷

三、ReentrantLock中的屬性

  1. serialVersionUID:序列號
  2. sync:內部類Sync的引用,提供了所有方法的實現機制

四、ReentrantLock中的三個內部類

  1. Sync:抽象類,其中的lock方法需要子類去實現,其兩個子類如下‘
  2. FairSync
  3. NonfairSync

五、ReentrantLock中的方法

  1. ReentrantLock():默認構造方法中將一個NonfairSync對象傳給sync引用
  2. lock():獲取鎖
  3. unlock():釋放鎖
  4. newCondition():獲取Condition對象,用法和Object類中的wait、notify等相同
  5. tryLock():立即獲取鎖或等待一定時間後放棄

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章