This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Next revision Both sides next revision | ||
java:starvation_fairness [2015/04/19 15:39] gthanos [Χρησιμοποιώντας Locks αντί για συγχρονισμένα blocks/μεθόδους] |
java:starvation_fairness [2015/04/19 16:07] gthanos [Υλοποίηση Fair Lock] |
||
---|---|---|---|
Line 149: | Line 149: | ||
</code> | </code> | ||
+ | Παρατηρήστε ότι μόνο ένα νήμα λαμβάνει την κλειδαριά κάθε φορά, αλλά ο χρονοπρογραμματισμός των νημάτων γίνεται με την σειρά. Όταν ένα νήμα προσπαθεί να πάρει την κλειδαριά εξυπηρετείται μόνο αν δεν υπάρχουν άλλα νήματα στην ουρά, ενώ αν υπάρχουν αυτά εξυπηρετούνται με την σειρά. Κάθε νήμα περιμένει τη σειρά του λαμβάνοντας το lock ενός διαφορετικού αντικειμένου. Με αυτόν τον τρόπο έχουμε την δυνατότητα καλώντας την notify() για το αντικείμενο για το οποίο περιμένει το κάθε νήμα, να ξυπνήσουμε μόνο το νήμα αυτό, ενώ τα υπόλοιπα κοιμούνται. | ||