public
class
thraedtest
, string.
valueof
(i))
.start()
;}countdownlatch.
await()
; system.out.
println
("關門結束");
訊號量通常用來限制執行緒數,比如限流,而不是訪問某些(物理或邏輯)資源。例如,這是乙個使用訊號量來控制對乙個專案池的訪問的類
readwritelock維護一對關聯的lock,乙個用於唯讀操作,乙個用於寫入,readlock可以由多個閱讀器執行緒同時進行,只要沒有作者,write是獨家 的。
讀可以別多執行緒同時讀
寫的時候只能有乙個執行緒區寫
/**
* 獨佔鎖(寫鎖) 一次只能被乙個執行緒占有
* 共享鎖(讀鎖) 多個執行緒可以同時占有
* readwritelock
* 讀-讀 可以共存!
* 讀-寫 不能共存!
* 寫-寫 不能共存!
*/public
class
readwritelockdemo
, string.
valueof
(i))
.start()
;}// 讀取
for(
int i =
1; i <=
5; i++
), string.
valueof
(i))
.start()
;}}}
// 加鎖的
class
mycachelock
catch
(exception e)
finally
}// 取,讀,所有人都可以讀!
public
void
get(string key)
catch
(exception e)
finally}}
/** * 自定義快取
*/class
mycache
// 取,讀
public
void
get(string key)
}
JUC併發程式設計
併發程式設計的本質 充分利用cpu的資源 執行緒就是乙個單獨的資源類,沒有任何的附屬操作。傳統的synchronize鎖本質 佇列,鎖 lock.lock 加鎖 trynew reentrantlock lock.lock 加鎖 finally lock.unlock 解鎖鎖是什麼,如何判斷鎖的是誰...
JUC併發程式設計
juc本階段學習介紹 執行緒和程序 回顧多執行緒 傳統的synchronized鎖 lock鎖 synchronized和lock區別 傳統的生產者消費者問題 防止虛假喚醒 lock版的生產者消費者問題 condition實現精準通知喚醒 八鎖現象徹底理解鎖 copyonwritearraylist...
JUC 併發程式設計 應用
2.限制對共享資源的使用 快取統籌 定時sleep 實現 在沒有利用 cpu 來計算時,不要讓 while true 空轉浪費 cpu,這時可以使用 yield 或 sleep 來讓出 cpu 的使用權 給其他程式 while true catch interruptedexception e se...