Junior — Middle
Vai jūs varat izskaidrot, kas ir savstarpējas izslēgšanas mehānisms (Mutex) un kā tas darbojas, lai novērstu vienlaicīgu piekļuvi resursiem?
sobes.tech AI
Atbilde no AI
Savstarpējas izslēgšanas mehānisms (Mutex) ir sinhronizācijas veids, kas garantē, ka katrā brīdī tikai viens pavedienu vai procesu var piekļūt koplietotajam resursam.
Kā tas darbojas:
- Mutex nodrošina bloķēšanu, kuru pavedienam jāiegūst pirms resursa izmantošanas.
- Ja cits pavediens jau ir iegūjis mutex, nākamie gaidīs, kamēr tas tiks atbrīvots.
- Pēc darba ar resursu pavediens atbrīvo mutex, ļaujot citiem piekļūt.
Tas novērš sacensību stāvokļus un nodrošina datu integritāti paralēlās piekļūšanas laikā.
Piemērs Swift (iOS):
let mutex = DispatchSemaphore(value: 1)
func accessResource() {
mutex.wait() // iegūt mutex
// darbs ar kopīgo resursu
mutex.signal() // atbrīvot mutex
}
Šeit DispatchSemaphore ar sākotnējo vērtību 1 darbojas kā mutex.