Junior — Middle
Σε ποιες λειτουργίες λειτουργεί ο μηχανισμός αμοιβαίας αποκλεισμού (Mutex);
sobes.tech AI
Απάντηση από AI
Ο μηχανισμός αμοιβαίας αποκλεισμού (Mutex) στη Go λειτουργεί σε δύο βασικές λειτουργίες:
-
Κλειδωμένο (locked) — όταν ένα goroutine αποκτά το mutex, άλλα goroutines που προσπαθούν να το αποκτήσουν μπλοκάρονται και περιμένουν την απελευθέρωσή του.
-
Ξεκλειδωμένο (unlocked) — όταν το mutex είναι ελεύθερο και διαθέσιμο για απόκτηση.
Το mutex παρέχει αποκλειστική πρόσβαση σε κοινόχρηστους πόρους, αποτρέποντας την ταυτόχρονη εκτέλεση κρίσιμου τμήματος κώδικα από πολλά goroutines.
Παράδειγμα χρήσης:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock() // κλειδώνει το mutex
defer mu.Unlock() // απελευθερώνει το mutex μετά την εκτέλεση
counter++
}
Έτσι, το mutex λειτουργεί σε λειτουργία κλειδώματος και ξεκλειδώματος, διασφαλίζοντας διαδοχική πρόσβαση στα δεδομένα.