Junior — Middle
Kā tiek īstenots savstarpējās izslēgšanas mehānisms, izmantojot Mutex Go valodā?
sobes.tech AI
Atbilde no AI
Go valodā, lai īstenotu savstarpēju izslēgšanu (mutex), tiek izmantots sync.Mutex tips. Tas ļauj aizsargāt kritiskās koda sekcijas no vienlaicīgas piekļuves vairākām gorutīnām, novēršot sacensību apstākļus.
Galvenās operācijas:
Lock()— bloķē mutex, liedzot citām gorutīnām piekļūt.Unlock()— atbloķē mutex, ļaujot citām gorutīnām turpināt.
Piemērs lietošanai:
package main
import (
"fmt"
"sync"
)
func main() {
var mu sync.Mutex
counter := 0
mu.Lock() // Bloķē mutex
counter++
fmt.Println("Skaitītājs:", counter)
mu.Unlock() // Atbloķē mutex
}
Daudzšūnu vidē mutex garantē, ka tikai viena gorutīna vienlaikus izpildīs kodu starp Lock() un Unlock(), novēršot koplietošanas datu kļūdainas izmaiņas.