Sobes.tech
Junior — Middle

Εξηγήστε τι είναι το κλείδωμα (Lock) στο πλαίσιο ενός mutex και για ποιο λόγο χρησιμοποιείται.

sobes.tech AI

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

Το κλείδωμα (Lock) είναι ένας μηχανισμός συγχρονισμού που χρησιμοποιείται για την αποτροπή ταυτόχρονης πρόσβασης πολλαπλών νημάτων ή goroutines σε έναν κοινό πόρο, ώστε να αποφευχθούν καταστάσεις αγώνα και να διασφαλιστεί η ορθότητα των δεδομένων.

Στο πλαίσιο ενός mutex, το κλείδωμα σημαίνει ότι όταν ένα νήμα καταλαμβάνει (lock) ένα mutex, άλλα νήματα που προσπαθούν να το καταλάβουν θα περιμένουν μέχρι το πρώτο να το απελευθερώσει (unlock).

Παράδειγμα σε Go:

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()         // κατακτήστε το κλείδωμα
    counter++         // κρίσιμη ενότητα
    mu.Unlock()       // απελευθερώστε το κλείδωμα
}

Έτσι, το κλείδωμα διασφαλίζει ότι μόνο ένα νήμα εκτελεί την κρίσιμη ενότητα του κώδικα σε μια δεδομένη στιγμή.