Kotlin yardımcı programları "daha önce olur" garantisi veriyor mu?
Örneğin, mutableVar
bu durumda başka bir konuya yazma ve daha sonra okuma (potansiyel olarak) arasında "daha önce olur" garantisi var mı :
suspend fun doSomething() {
var mutableVar = 0
withContext(Dispatchers.IO) {
mutableVar = 1
}
System.out.println("value: $mutableVar")
}
Düzenle:
Belki ek örnek, daha fazla Kotlin-ish olmasına rağmen (değişebilirlik hariç) soruyu daha iyi açıklayacaktır. Bu kod iş parçacığı için güvenli mi?
suspend fun doSomething() {
var data = withContext(Dispatchers.IO) {
Data(1)
}
System.out.println("value: ${data.data}")
}
private data class Data(var data: Int)
withContext
, ancak ilk örnek onu önce oluşturur, içinde mutasyona uğrar withContext
ve daha sonra da okur withContext
. Dolayısıyla ilk örnek daha fazla iş parçacığı güvenlik özelliği kullanır.