自己可以再次獲取自己的內部鎖。比如有1調執行緒獲得了某個物件的鎖,此時這個物件鎖還沒有釋放,當其再次想要獲取這個物件的鎖的時候還是可以獲取的,如果不可鎖重入的話,就會造成死鎖。可重入鎖也支援在父類繼承的環境中。(即子類鎖中呼叫了父類帶鎖函式)
普通可重入鎖示例**:
public class service
synchronized public void service2()
synchronized public void service3()
}public class mythread extends thread
}public class run catch (interruptedexception e)
mythread t1 = new mythread();
t1.setname("b");
t1.start();
}}
執行結果:
父類繼承當中的可重入鎖:
public class main catch (interruptedexception e) }}
public class sub extends main
} catch (interruptedexception e) }}
public class mythread extends thread
}public class run
}
執行結果:
多執行緒之可重入鎖
當乙個執行緒得到物件鎖後,再次請求此物件鎖時是可以再次得到改物件的鎖的 可重入鎖 的概念 自己可以再次獲得自己內部的鎖,比如有一條執行緒獲得了某個物件的鎖,此時這個物件的鎖還沒有釋放,當再次獲取這個物件的鎖的時候還是可以獲取的,如果不可鎖重入的話就會造成死鎖。例如 synchronized和reen...
java 多執行緒 可重入鎖RentrantLock
1.業務場景,實現乙個排隊功能,比如 1,2,3 執行完成之後,重新從1,2,3 繼續執行下去 public static void main string args start new thread new runnable start new thread new runnable start ...
可重入鎖 不可重入鎖
可重入鎖指的是可重複可遞迴呼叫的鎖,在外層使用鎖之後,在內層仍然可以使用,並且不發生死鎖 前提是同乙個物件或者類 note reentrantlock和synchronized都是可重入鎖 1 public class testlock 78 public synchronized void tes...