Sobes.tech
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.