background image

Σχεδιασμός και υλοποίηση ενός έξυπνου παιχνιδιού για τη συναισθηματική 

παρακολούθηση και το γονικό έλεγχο ενός παιδιού 

 

 

41 

 

την  ίδια  στιγμή.  Μόνο  σε  έναν  επεξεργαστή  με  πολλούς  επεξεργαστικούς  πυρήνες,  τα 

νήματα  εκτελούνται  πραγματικά  ταυτόχρονα  και  κάθε  πυρήνας  εκτελεί  ένα 

συγκεκριμένο νήμα ή εργασία. 

Ο  πολυνηματικός  προγραμματισμός  είναι  ένας  καλός  τρόπος  να  βελτιωθεί  η 

εκτέλεση  κάποιων  προγραμμάτων.  Τα  πλεονεκτήματα  του  πολυνηματισμού 

περιλαμβάνουν: 

●  Πιο αποτελεσματική χρήση των διαθέσιμων πόρων. 

●  Απλούστερα προγράμματα κατά περιπτώσεις. 

●  Καλύτερη απόκριση προγραμμάτων. 

Έστω ότι έχει αναπτυχθεί μία εφαρμογή η οποία διαβάζει δεδομένα από αρχεία που 

βρίσκονται  στο  δίσκο  και  μετά  τα  επεξεργάζεται.  Από  σχεδιαστικής  άποψης,  είναι 

ευκολότερο  να  δημιουργηθούν  δύο  νήματα  καθένα  από  τα  οποία  θα  εκτελεί  μία  από 

αυτές  τις  εργασίες  παρά  να  υπήρχε  ένα  μοναδικό  νήμα  το  οποίο  θα  έπρεπε  να 

παρακολουθεί τις διαδικασίες ανάγνωσης όλων των αρχείων. Τα δύο νήματα μπορούν να 

ξεκινήσουν  μαζί  και  το  καθένα  να  περιμένει  να  ελευθερωθεί  ο  δίσκος  για  να  τον 

χρησιμοποιήσει. Με τον τρόπο αυτό επιτυγχάνεται καλύτερη χρήση τόσο του δίσκου όσο 

και της CPU. 

Η  βελτίωση  της  απόκρισης  μιας  εφαρμογής  είναι  ακόμη  ένας  λόγος  για  να 

μετατραπεί  σε  πολυνηματική.  Πιο  συγκεκριμένα,  στη  περίπτωση  που  μία  εφαρμογή 

περιλαμβάνει μία χρονοβόρα εργασία, το βέλτιστο θα ήταν να ανατεθεί αυτή σε ένα νήμα 

εργασίας.  Αποτέλεσμα  αυτής  της  αλλαγής  θα  είναι  η  εφαρμογή  να  ελευθερώνεται  για 

άλλες εργασίες, καθώς το εν λόγω νήμα εργασίας είναι απασχολημένο.  

Εκτός  από  πλεονεκτήματα,  βέβαια,  στον  πολυνηματισμό  υπάρχουν  και 

μειονεκτήματα. Οι εφαρμογές που τον εφαρμόζουν είναι επιρρεπείς στην ύπαρξη λαθών. 

Αυτά  έχουν  να  κάνουν  κυρίως  με  την  πρόσβαση  σε  διαμοιραζόμενους  πόρους  όπως 

μνήμη, αρχεία, βάσεις δεδομένων κ.α. Επιπλέον, πρέπει να λαμβάνονται πάντα υπόψη οι 

επιπτώσεις στην απόδοση που προκύπτουν από τις εναλλαγές περιβάλλοντος αλλά και ο 

χώρος μνήμης και οι πόροι  του λειτουργικού συστήματος  που απαιτεί ένα νήμα για τα 

δεδομένα και τη διαχείρισή του. [13]