Les coroutines Kotlin offrent-elles des garanties de «survenance avant»?
Par exemple, existe-t-il une garantie «passe avant» entre l'écriture mutableVaret la lecture ultérieure sur (potentiellement) un autre thread dans ce cas:
suspend fun doSomething() {
    var mutableVar = 0
    withContext(Dispatchers.IO) {
        mutableVar = 1
    }
    System.out.println("value: $mutableVar")
}Éditer:
Un exemple supplémentaire clarifiera peut-être mieux la question, car il s'agit davantage de Kotlin-ish (sauf pour la mutabilité). Ce code est-il sûr pour les threads:
suspend fun doSomething() {
    var data = withContext(Dispatchers.IO) {
        Data(1)
    }
    System.out.println("value: ${data.data}")
}
private data class Data(var data: Int)withContext, tandis que le 1er exemple le crée d'abord, mute à l'intérieur withContext, puis lit après withContext. Ainsi, le 1er exemple exerce plus de fonctionnalités de sécurité des threads.