Android 在kotlin中是否按顺序获取锁

Android 在kotlin中是否按顺序获取锁,android,kotlin,Android,Kotlin,假设我们在kotlin中有一个函数,它获取锁,然后更改一个值。像这样的 fun changeWithLock(newValue) { withLock { value = newValue } } 现在,如果这个函数被调用两次,使得第一个调用不会立即获取锁,并且两个函数调用都在等待获取锁 fun changeValue() { changewithLock(newValue1) changeWithLock(newValue2) } 变量va

假设我们在kotlin中有一个函数,它获取锁,然后更改一个值。像这样的

fun changeWithLock(newValue) {
    withLock {
        value  = newValue
    }
}
现在,如果这个函数被调用两次,使得第一个调用不会立即获取锁,并且两个函数调用都在等待获取锁

fun changeValue() {
    changewithLock(newValue1)
    changeWithLock(newValue2)
}

变量
value
的最终值是多少?

这里的两个方法调用是连续的(没有启动线程或其他并发处理),因此它们不会同时尝试获取锁

在这种情况下,该值应始终为
newValue2


如果这种情况涉及到对
withLock
(在同一个锁上)的真正并发调用,则可能是一种不确定的情况,但这里不是这种情况。

您在这里指的是哪个
withLock
方法?我知道的那些需要一个
Lock
接收器或
Mutex
接收器(在kotlinx协同程序中),但第二个接收器也需要挂起函数。