不可重入鎖的設計

2021-09-26 09:43:45 字數 401 閱讀 7278

可重入鎖:如果某個執行緒試圖獲取乙個已經由他自己持有的鎖,這個請求可以成功,那麼此時的鎖就是可重入鎖

不可重入鎖:不可重入鎖和可重入鎖相反,就是同乙個執行緒多次請求同一把鎖,會出現死鎖

定義乙個不可重入鎖:

public class lock

//當該執行緒第一次進來的時候,將islocked置位true

islocked = true;

}public synchronized void unlock()

}

使用上面的自定義的不可重入鎖

public class count

public void doadd()

}

可重入鎖 不可重入鎖

可重入鎖指的是可重複可遞迴呼叫的鎖,在外層使用鎖之後,在內層仍然可以使用,並且不發生死鎖 前提是同乙個物件或者類 note reentrantlock和synchronized都是可重入鎖 1 public class testlock 78 public synchronized void tes...

可重入鎖和不可重入鎖

當乙個執行緒獲得當前例項的鎖lock,並且進入了方法a,該執行緒在方法a沒有釋放該鎖的時候,是否可以再次進入使用該鎖的方法b?不可重入鎖 在方法a釋放鎖之前,不可以再次進入方法b 可重入鎖 在方法a釋放該鎖之前可以再次進入方法b 如reentrantlock和synchronized 不可重入鎖的實...

可重入鎖和不可重入鎖

可重入鎖就是可以迴圈迭代使用的鎖,不會產生死鎖的現象,典型的就是synchronized和reentrantlock。不可重入鎖迴圈迭代使用則有產生死鎖的風險。可重入鎖 class reentranttest implements runnable public synchronized void ...