This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
java:concurrency_intro [2015/03/24 14:01] gthanos [Περιμένοντας ένα νήμα να ολοκληρώσει μέσω της μεθόδου join()] |
java:concurrency_intro [2015/04/18 15:52] gthanos [Περιμένοντας ένα νήμα να ολοκληρώσει μέσω της μεθόδου join()] |
||
---|---|---|---|
Line 87: | Line 87: | ||
</code> | </code> | ||
- | Εάν ένα νήμα δεν καλεί κάποια μέθοδο που δημιουργεί [[http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html|InterruptedException]] θα πρέπει περιοδικά να ελέγχει κατά πόσο υπάρχει κάποια σήμα διακοπής προς το συγκεκριμένο νήμα σε μία ανακύκλωση της μορφής | + | Εάν ένα νήμα δεν καλεί κάποια μέθοδο που δημιουργεί [[http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html|InterruptedException]] και η εφαρμογή δουλεύει με interrupts, θα πρέπει περιοδικά να ελέγχει κατά πόσο υπάρχει κάποια σήμα διακοπής προς το συγκεκριμένο νήμα σε μία ανακύκλωση της μορφής |
<code java> | <code java> | ||
Line 112: | Line 112: | ||
</code> | </code> | ||
- | τότε η εκτέλεση του σταματάει έως ότου το νήμα 't' να τερματίσει την εκτέλεση του. Υπάρχουν οι εξής παραλλαγές της μεθόδου join | + | τότε η εκτέλεση του σταματάει έως ότου το νήμα **'t'** να τερματίσει την εκτέλεση του. Υπάρχουν οι εξής παραλλαγές της μεθόδου join |
* **t.join():** περίμενε μέχρι το νήμα t να τερματίσει | * **t.join():** περίμενε μέχρι το νήμα t να τερματίσει | ||
* **t.join(long millis):** μέχρι το νήμα t να τερματίσει ή περίμενε για **millis** milliseconds. | * **t.join(long millis):** μέχρι το νήμα t να τερματίσει ή περίμενε για **millis** milliseconds. | ||
* **t.join(long millis, int nanos):** μέχρι το νήμα t να τερματίσει ή περίμενε για **millis+nanos/1000000** milliseconds. | * **t.join(long millis, int nanos):** μέχρι το νήμα t να τερματίσει ή περίμενε για **millis+nanos/1000000** milliseconds. | ||
- | Όπως και η μέθοδος sleep() η μέθοδος join() δύναται να διακοπεί από ένα [[http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html|InterruptedException()]]. | + | Όπως και η μέθοδος **sleep()** η μέθοδος **join()** δύναται να διακοπεί από ένα [[http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html|InterruptedException()]]. |
===== Εφαρμόζοντας τις μεθόδους sleep()/interrupt()/join() σε ένα παράδειγμα ===== | ===== Εφαρμόζοντας τις μεθόδους sleep()/interrupt()/join() σε ένα παράδειγμα ===== |