* Οθόνες: Μια οθόνη είναι ένα κατασκεύασμα συγχρονισμού που εξασφαλίζει ότι μόνο ένα νήμα μπορεί να έχει πρόσβαση σε ένα κρίσιμο τμήμα του κώδικα κάθε φορά. Είναι ένας τρόπος για να αποτρέψετε τις συνθήκες της φυλής και τη διαφθορά των δεδομένων όταν τα πολλαπλά νήματα πρέπει να μοιράζονται πόρους.
* Θέματα: Τα νήματα είναι ανεξάρτητες μονάδες εκτέλεσης μέσα σε μια διαδικασία. Μπορούν να δημιουργηθούν και να διαχειριστούν από το λειτουργικό σύστημα.
Πώς αλληλεπιδρούν:
1. Αποκτήστε την κλειδαριά: Όταν ένα νήμα πρέπει να έχει πρόσβαση σε έναν κοινό πόρο, πρέπει να αποκτήσει την κλειδαριά της οθόνης.
2. Αποκλειστική πρόσβαση: Μόλις ένα νήμα έχει αποκτήσει την κλειδαριά, έχει αποκλειστική πρόσβαση στο κρίσιμο τμήμα. Άλλα νήματα που προσπαθούν να αποκτήσουν την κλειδαριά θα μπλοκαριστούν μέχρι να το απελευθερώσει το πρώτο νήμα.
3. απελευθέρωση της κλειδαριάς: Όταν το νήμα έχει τελειώσει με το κρίσιμο τμήμα, απελευθερώνει την κλειδαριά. Ένα άλλο νήμα μπορεί στη συνέχεια να αποκτήσει την κλειδαριά και να συνεχίσει την εκτέλεση.
Βασικό σημείο: Ένα νήμα δεν κρατά ταυτόχρονα πολλαπλές οθόνες. Μπορεί να αποκτήσει πολλαπλές κλειδαριές, μία κάθε φορά, αλλά μπορεί να κρατήσει μόνο μία κλειδαριά κάθε φορά.
Παράδειγμα:
Φανταστείτε δύο νήματα, το νήμα a και το thread b, που πρέπει να αποκτήσετε πρόσβαση στον ίδιο τραπεζικό λογαριασμό.
* Το νήμα A θέλει να καταθέσει χρήματα.
* Το νήμα Β θέλει να αποσύρει χρήματα.
Χρησιμοποιείται μια οθόνη για την προστασία του υπολοίπου του τραπεζικού λογαριασμού:
1. Το νήμα Α αποκτά την κλειδαριά της οθόνης.
2. Το νήμα a εκτελεί τη λειτουργία κατάθεσης.
3. Το νήμα Α απελευθερώνει την κλειδαριά
4. Το νήμα b αποκτά το κλείδωμα της οθόνης.
5. Το νήμα Β εκτελεί τη λειτουργία απόσυρσης.
6. Το νήμα Β απελευθερώνει την κλειδαριά
Αυτό εμποδίζει τα δύο νήματα να τροποποιήσουν ταυτόχρονα το υπόλοιπο του λογαριασμού, εξασφαλίζοντας τη συνέπεια των δεδομένων.
Επιτρέψτε μου να ξέρω αν έχετε άλλες ερωτήσεις!
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα