Spinlock

Στην τεχνολογία λογισμικού το spinlock είναι μηχανισμός κλειδώματος ενός νήματος/thread που θέλει να αποκτήσει πρόσβαση σε ένα πόρο. Κατά τον μηχανισμό αυτόν, το νήμα περιμένει "τρέχοντας" ατέρμονα βρόχο επανάληψης (loop/spin), με τον οποίο ελέγχει την κατάσταση του κλειδώματος.  Το νήμα καθώς εκτελεί τον βρόχο αυτόν βρίσκεται σε αναμονή (ονομάζεται η κατάσταση αυτή busy waiting). Όταν το νήμα αποκτήσει πρόσβαση στο κλείδωμα, την διατηρεί μέχρι να ολοκληρωθεί ο κώδικας εκτέλεσης του νήματος. Ένα spin lock στην πράξη είναι μηχανισμός κλειδώματος mutex σε κάποιους κοινούς πόρους, ο οποίος στην πράξη μπλοκάρει ένα νήμα κάνοντάς το να βρίσκεται σε κατάσταση busy-waiting καθώς εκτελεί ατέρμονα βρόχο ελέγχου κλειδώματος (το spinlocκ).

Παραπομπές

Προγραμματισμός
Νήματα
Δομές προγραμματισμού