Άσκηση 12.2
Αλλαγή
προτεραιότητας
νημάτων
Θέση αρχείων = /ExerciseCode/C12/ExTwelveTwo/
Σε αυτή
την άσκηση θα
εκτελέσετε
ορισμένα
νήματα
με
διαφορετικές
προτεραιότητες
και θα
εξετάσετε
το
αποτέλεσμα
τους. Κάθε
νήμα
κληρονομεί
από την κλάση SimpleThread,
η
οποία
ορίστηκε στην προηγούμενη
άσκηση
και έχει μια
επιπλέον
μεταβλητή
οντότητας
που
αναπαριστά την
προτεραιότητα
της.
Ακολουθήστε
τα παρακάτω
βήματα.
- Εκτελέστε
το PriorityThreadLauncher. Θα
δείτε
διαφορετικά
νήματα να
εκτελούνται
παρουσιάζοντας
μηνύματα για
κάθε
εκτέλεση
τους. Θα
δείτε ότι τα
υψηλής
προτεραιότητας
νήματα,
κυριαρχούν
των
κανονικης
προτεραιότητας
νήματα, που
κυριαρχούν
των χαμηλής
προτεραιότητας
νήματα.
- Δείτε
τις κλάσεις
PriorityThread και PriorityThreadLauncher
και
κατανοήστε
τι
γίνεται. Η πρώτη
απλώς
περιγράφει τα
νήματα που
έχουν
προτεραιότητα.
Τη
πληροφορία
αυτή
χρησιμοποιεί
ο
χρονοδροπρογραμματιστής
νημάτων της
Java. Η δεύτερη
κλάση
δημιουργεί
τρία νήματα, ένα
για κάθε
διαφορετική
προτεραιότητα.
Η
προτεραιότητα
περιγράφεται
από τις
στατικές
μεταβλητές
Thread.MIN_PRIORITY, Thread.NORM_PRIORITY και
Thread.MAX_PRIORITY.
Προσέξτε
ότι δεν στην
ουσία
υπάρχει ανάγκη
για μια
μεταβλητή
προτεραιότητας.
Αυτές οι
πληροφορίες
αποθηκεύονται
εσωτερικά
στην κλάση Thread.
Απλά,
χρησιμοποίησα
μια μεταβλητή για
λόγους επίδειξης.