background image

2.8

Νήματα (threads)

Νήμα (thread) ονομάζεται μια ανεξάρτητη ακολουθία ελέγχων και εντολών εντός

προγράμματος. Πολλές ϕορές, η έννοια του νήματος συγχέεται με αυτή της διεργα-

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

διαϕορά ανάμεσα τους είναι ότι τα νήματα μπορούν να μοιράζονται τον ίδιο χώρο

διευθύνσεων ενώ αντίθετα οι διεργασίες συνήθως όχι. Έτσι, ενώ δύο νήματα ενός

προγράμματος έχουν πρόσβαση σε κάποιο αντικείμενο αυτού, δύο διεργασίες βλέ-

πουν δυο διαϕορετικά αντίγραϕα του ίδιου αντικειμένου. Κάθε διεργασία μπορεί

να διαθέτει περισσότερα από ένα νήματα, τα οποία περιέχουν τις εντολές προς την

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

των μεταβλητών την κάθε χρονική στιγμή.

Σε έναν μονοπύρηνο επεξεργαστή, η πολυνημάτωση (multithreading) πραγματο-

ποιείται με την μέθοδο της πολυπλεξίας με διαίρεση του χρόνου. Πιο συγκεκριμένα,

ο επεξεργαστής μεταπηδάει μεταξύ των διάϕορων νημάτων ανα πολύ τακτά χρο-

νικά διαστήματα, έτσι ώστε ο χρήστης έχει την εντύπωση ότι τα νήματα εκτελούνται

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

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

σία.

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

πιο αποτελεσματική χρήση των πόρων καθώς και την καλύτερη απόκριση των προ-

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

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

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

2.9

Εργαλεία που χρησιμοποιήθηκαν

2.9.1

Visual Studio

Το Visual Studio είναι το επίσημο ολοκληρωμένο αναπτυξιακό πριβάλλον (Integrated

Development Environment) της Microsoft για την ανάπτυξη προγραμμάτων, ιστοσε-

λίδων και εϕαρμογών κινητών τηλεϕώνων. Το Visual Studio χρησιμοποιεί τις πλατ-

ϕόρμες ανάπτυξης λογισμικού της Microsoft, όπως Windows API, Windows Forms

24