多執行緒之重入鎖ReentrantLock

2021-08-09 05:18:43 字數 533 閱讀 6548

* void lock().  //獲取鎖,一直等待,直到拿到鎖,不可被打斷

* void lockinterruptibly() throws interruptedexception. //獲取鎖,可被打斷

* boolean trylock(). //嘗試拿鎖,拿到返回ture,拿不到返回false

* boolean trylock(long timeout, timeunit unit) throws interruptedexception. //在特定時間,一直嘗試拿鎖,可打斷

* void unlock(). //釋放鎖

* int getqueuelength(). //此時有多少等待搶鎖

* boolean hasqueuedthreads(). //是否有執行緒等待搶鎖

* boolean hasqueuedthread(thread thread).//是否有指定執行緒等待搶鎖

* int getholdcount(). //當前執行緒是否搶到鎖。返回0代表沒有

多執行緒之可重入鎖

當乙個執行緒得到物件鎖後,再次請求此物件鎖時是可以再次得到改物件的鎖的 可重入鎖 的概念 自己可以再次獲得自己內部的鎖,比如有一條執行緒獲得了某個物件的鎖,此時這個物件的鎖還沒有釋放,當再次獲取這個物件的鎖的時候還是可以獲取的,如果不可鎖重入的話就會造成死鎖。例如 synchronized和reen...

Java之多執行緒之鎖重入

一 什麼叫鎖重入 1.在多執行緒同步中,使用synchronized進行同步處理時,會對物件加鎖處理,啟用物件的互斥唯一性。2.在乙個執行緒執行到同步 並獲得物件的鎖時,如果在該同步 內部又繼續呼叫了本類的其他同步方法,也可以執行 這就表明了鎖重入。3。當乙個執行緒得到乙個物件的鎖後,再次請求該物件...

多執行緒四 可重入鎖

自己可以再次獲取自己的內部鎖。比如有1調執行緒獲得了某個物件的鎖,此時這個物件鎖還沒有釋放,當其再次想要獲取這個物件的鎖的時候還是可以獲取的,如果不可鎖重入的話,就會造成死鎖。可重入鎖也支援在父類繼承的環境中。即子類鎖中呼叫了父類帶鎖函式 普通可重入鎖示例 public class service ...