多執行緒中,執行緒獲取的究竟是誰的鎖

2021-10-12 07:14:46 字數 586 閱讀 6414

public class sample 

} catch (interruptedexception e) finally

}public void second() catch (interruptedexception e) finally }}

}

public class solution 

}

示例**中,兩個執行緒在競爭鎖,但執行緒競爭的是 sample 物件的鎖,還是 lock 物件的鎖呢?

1、reentrantlock 中存在名為 sync 的內部類

2、sync 為 abstractqueuedsynchronizer(aqs)的子類

3、aqs 中存在名為 state 的成員變數

4、可重入鎖加鎖的過程就是通過 cas 將 aqs 中的成員變數 state 由 0 變 1 的過程

5、程式前 10 秒 fisrt 執行緒已將 state 由 0 變 1,第 10 秒才將 1 恢復為 0

6、因此 second 執行緒在第 5 秒呼叫 trylock 發現 state 為 1 則已經獲取鎖失敗

究竟是誰偷走我的記憶體

自從換了筆記本之後鳥槍換炮用上了4g的記憶體,覺得很爽,不過最近發現有點不正常,開機之後記憶體馬上到了600多m,記得以前用xp的時候開機之後200 300m而已,看了一下右下角的狀態列,只啟動了nod32和skype而已,任務管理器內skype佔了30m,nod32佔了40m,那也不至於到600多...

究竟是誰偷走我的記憶體

自從換了筆記本之後鳥槍換炮用上了4g的記憶體,覺得很爽,不過最近發現有點不正常,開機之後記憶體馬上到了600多m,記得以前用xp的時候開機之後200 300m而已,看了一下右下角的狀態列,只啟動了nod32和skype而已,任務管理器內skype佔了30m,nod32佔了40m,那也不至於到600多...

多執行緒中線程「同步」概念的理解

接觸執行緒很久了,一直就只知道多執行緒併發中很有可能引起執行緒安全問題,所以啊就需要進行執行緒同步,就是通過什麼synchronize,lock,volatile,juc並發包下的那幾個類,threallocal,aqs,原子變數和阻塞佇列啊等等這些實現同步,但回過頭來想想 同步 到底是個什麼?是執...