Sobes.tech
Junior — Middle

Είναι το mutex ένα εργαλείο συγχρονισμού νημάτων;

sobes.tech AI

Απάντηση από AI

Ναι, το mutex (αμοιβαία αποκλεισμός) είναι ένα εργαλείο συγχρονισμού νημάτων. Στο Go, είναι μια δομή sync.Mutex που επιτρέπει τον περιορισμό της ταυτόχρονης πρόσβασης σε κοινόχρηστους πόρους, αποτρέποντας καταστάσεις αγώνα. Όταν ένα νήμα (goroutine) αποκτά το mutex, άλλα που προσπαθούν να το αποκτήσουν μπλοκάρονται μέχρι να απελευθερωθεί.

Παράδειγμα χρήσης mutex στο Go:

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()           // κλειδώστε το mutex
    defer mu.Unlock()   // απελευθερώστε το mutex
    counter++
}