[英]Kotlin Concurrency: Any standard function to run code in a Lock?
我一直在尋找一個函數,它接受一個Lock
類型的對象並運行一個帶有該鎖的代碼塊,負責鎖定和解鎖。
我會按如下方式實現它:
fun <T : Lock> T.runLocked(block: () -> Unit) {
lock()
try {
block()
} finally {
unlock()
}
}
像這樣使用:
val l = ReentrantLock()
l.runLocked {
println(l.isLocked)
}
println(l.isLocked)
//true
//false
有什么可用的嗎? 我只能找到無法像這樣使用的synchronized
功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.