java:starvation_fairness

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
java:starvation_fairness [2015/04/19 16:33]
gthanos [Χρησιμοποιώντας Locks αντί για συγχρονισμένα blocks/μεθόδους]
java:starvation_fairness [2016/02/26 11:15] (current)
Line 74: Line 74:
 <WRAP important 80% round center> <WRAP important 80% round center>
 Όταν περιφρουρούμε ένα κρίσιμο τμήμα κώδικα με μία κλειδαριά (όπως η παραπάνω) το οποίο μπορεί να δώσει ένα ή περισσότερα Exceptions είναι σημαντικό να τοποθετούμε τη μέθοδο unlock() μέσα σε ένα finally block. Με αυτό τον τρόπο είμαστε βέβαιοι ότι ακόμη και εάν συμβεί κάποιο Exception, η κλειδαριά θα ξεκλειδώσει,​ ώστε να μπορέσουν άλλα νήματα να κλειδώσουν και να εκτελέσουν το κρίσιμο τμήμα του κώδικα. Όταν περιφρουρούμε ένα κρίσιμο τμήμα κώδικα με μία κλειδαριά (όπως η παραπάνω) το οποίο μπορεί να δώσει ένα ή περισσότερα Exceptions είναι σημαντικό να τοποθετούμε τη μέθοδο unlock() μέσα σε ένα finally block. Με αυτό τον τρόπο είμαστε βέβαιοι ότι ακόμη και εάν συμβεί κάποιο Exception, η κλειδαριά θα ξεκλειδώσει,​ ώστε να μπορέσουν άλλα νήματα να κλειδώσουν και να εκτελέσουν το κρίσιμο τμήμα του κώδικα.
 +<code java>
 +lock.lock();​
 +try{
 +  //do critical section code, which may throw exception
 +} finally {
 +  lock.unlock();​
 +}
 +</​code>​
 </​WRAP>​ </​WRAP>​
  
java/starvation_fairness.txt · Last modified: 2016/02/26 11:15 (external edit)