Middle
Τι είναι το Mutex;
sobes.tech AI
Απάντηση από AI
Το Mutex (αμοιβαία αποκλεισμός) είναι ένας μηχανισμός συγχρονισμού στο Go, που χρησιμοποιείται για την αποτροπή ταυτόχρονης πρόσβασης πολλαπλών goroutines σε κοινόχρηστους πόρους, όπως μεταβλητές ή δομές δεδομένων. Το Mutex διασφαλίζει ότι σε κάθε χρονική στιγμή μόνο μια goroutine μπορεί να κατέχει το κλείδωμα και να εκτελεί την κρίσιμη ενότητα του κώδικα.
Παράδειγμα χρήσης του sync.Mutex στο Go:
import (
"fmt"
"sync"
)
func main() {
var mu sync.Mutex
μετρητής := 0
αύξηση := func() {
mu.Lock() // απόκτηση κλειδώματος
defer mu.Unlock() // απελευθέρωση κλειδώματος
μετρητής++
}
var wg sync.WaitGroup
for i := 0; i < 1000; i++ {
wg.Add(1)
go func() {
defer wg.Done()
αύξηση()
}()
}
wg.Wait()
fmt.Println("Μετρητής:", μετρητής)
}
Χωρίς Mutex, το αποτέλεσμα μπορεί να είναι εσφαλμένο λόγω συνθηκών αγώνα.