Sobes.tech
Junior — Middle

Kādam nolūkam tiek izmantots savstarpējās izslēgšanas (Mutex) mehānisms daudzvirzienu programmēšanā?

sobes.tech AI

Atbilde no AI

Daudzšūnu programmēšanā (multithreading) savstarpējās izslēgšanas mehānisms (Mutex) tiek izmantots, lai novērstu vairāku šūnu vienlaicīgu piekļuvi kopīgiem resursiem vai kritiskajām koda sekcijām. Tas palīdz novērst sacensību stāvokļus, datu bojājumus un nodrošina pareizu programmas darbību.

Go valodā bieži izmanto sync.Mutex:

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()           // bloķēt mutex
    counter++           // kritiskā sekcija
    mu.Unlock()         // atbloķēt mutex
}

Tādējādi tikai viens šūns var izpildīt kodu starp Lock un Unlock vienlaikus.