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,原子變數和阻塞佇列啊等等這些實現同步,但回過頭來想想 同步 到底是個什麼?是執...