Junior — Middle
Jakie metody są używane do organizacji bezpiecznego współdzielenia dostępu korutyn do jednego zasobu?
sobes.tech AI
Odpowiedź od AI
Aby bezpiecznie i wspólnie uzyskać dostęp korutyn do zasobu w Android (Kotlin), zwykle używa się następujących metod:
- Mutex z kotlinx.coroutines — zapewnia wzajemne wykluczanie, pozwalając tylko jednej korutynie jednocześnie uzyskać dostęp do zasobu.
- Channel — do przesyłania danych między korutynami, co pomaga uniknąć bezpośredniego wspólnego dostępu.
- Operacje atomowe — w prostych przypadkach, gdy trzeba bezpiecznie aktualizować wartości prymitywne.
Przykład użycia Mutex:
val mutex = Mutex()
var zasóbWspólny = 0
suspend fun bezpiecznyPrzyrost() {
mutex.withLock {
zasóbWspólny++
}
}
Takie podejście zapobiega warunkom wyścigu i zapewnia poprawne zachowanie podczas równoległego wykonywania korutyn.