Senior
Τι είναι ο απαισιόδοξος αποκλεισμός;
sobes.tech AI
Απάντηση από AI
Η απαισιόδοξη κλειδώματα είναι μια προσέγγιση διαχείρισης ταυτόχρονης πρόσβασης σε δεδομένα, όπου η πηγή κλειδώνεται αμέσως με την έναρξη της λειτουργίας για την αποτροπή συγκρούσεων. Δηλαδή, όταν μια συναλλαγή θέλει να αλλάξει δεδομένα, αποκτά ένα κλείδωμα, και άλλες συναλλαγές περιμένουν μέχρι να απελευθερωθεί.
Στη Go, αυτό μπορεί να υλοποιηθεί με τη χρήση mutex (sync.Mutex), που μπλοκάρουν την πρόσβαση σε κοινά δεδομένα:
var mu sync.Mutex
func updateData() {
mu.Lock() // απαισιόδοξη κλειδώματα
defer mu.Unlock()
// κρίσιμη ενότητα
}
Αυτή η προσέγγιση διασφαλίζει ότι μόνο μια goroutine μπορεί να αλλάξει δεδομένα τη φορά, αλλά μπορεί να οδηγήσει σε μείωση του παραλληλισμού και σε μπλοκαρίσματα.