Junior — Middle
Quali metodi vengono utilizzati per organizzare un accesso sicuro e condiviso delle coroutine a una risorsa?
sobes.tech AI
Risposta dell'AI
Per un accesso sicuro e condiviso delle coroutine a una risorsa in Android (Kotlin), si utilizzano generalmente i seguenti metodi:
- Mutex di kotlinx.coroutines — garantisce l’esclusione mutua, consentendo a una sola coroutine di accedere alla risorsa alla volta.
- Channel — per il trasferimento di dati tra coroutine, aiutando a evitare l’accesso condiviso diretto.
- Operazioni atomiche — per casi semplici, quando è necessario aggiornare in modo sicuro valori primitivi.
Esempio di utilizzo di Mutex:
val mutex = Mutex()
var risorsaCondivisa = 0
suspend fun incrementoSicuro() {
mutex.withLock {
risorsaCondivisa++
}
}
Questo approccio previene le condizioni di gara e garantisce un comportamento corretto durante l’esecuzione parallela delle coroutine.