[英]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.