可重入鎖:如果某個執行緒試圖獲取乙個已經由他自己持有的鎖,這個請求可以成功,那麼此時的鎖就是可重入鎖
不可重入鎖:不可重入鎖和可重入鎖相反,就是同乙個執行緒多次請求同一把鎖,會出現死鎖
定義乙個不可重入鎖:
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 ...