. Το .NET framework είναι μια βιβλιοθήκη κλάσης χρόνου εκτέλεσης για C#, . Το .NET είναι ένα περιβάλλον πολλαπλών νημάτων. Ένα νήμα είναι μια ενιαία διαδοχική διαδικασία ελέγχου σε μια διεργασία. Ένα νήμα είναι μια οντότητα σε μια διαδικασία. Μια διεργασία μπορεί να έχει πολλά νήματα και ένα νήμα πρέπει να έχει μια γονική διεργασία.
Τα νήματα έχουν γενικά τρεις βασικές καταστάσεις: ανάγνωση, αποκλεισμός και λειτουργία. Από τις τρεις βασικές καταστάσεις, προκύπτουν πέντε βασικές πράξεις νημάτων. Πρώτον, τα νήματα προέρχονται μέσα σε μια διαδικασία. Δεύτερον, προγραμματίστε, επιλέξτε ένα έτοιμο νήμα για να εισέλθετε στην κατάσταση λειτουργίας. Τρίτον, μπλοκ, εάν ένα νήμα χρειάζεται να περιμένει να συμβεί ένα συμβάν κατά την εκτέλεση, θα αποκλειστεί. Τέταρτον, ξεμπλοκάρετε, εάν ξεκινήσει το συμβάν, το νήμα ξεμπλοκάρεται, μπαίνοντας στην ουρά ετοιμότητας. Πέμπτον, τελειώστε, το νήμα τελειώνει και απελευθερώνεται το περιβάλλον του καταχωρητή και τα περιεχόμενα στοίβας που εκτέλεσε.
Ένα νέο νήμα είναι ένα αντικείμενο νήματος που δημιουργήθηκε πρόσφατα και δεν έχει ακόμη εκχωρήσει πόρους. Επομένως, μπορείτε να χρησιμοποιήσετε μόνο τις μεθόδους start() ή close().
Η κατάσταση εκτέλεσης είναι όταν το νήμα λαμβάνει τους απαραίτητους πόρους για το νήμα μετά την εκτέλεση της μεθόδου start() και καλεί τη μέθοδο run() για εκτέλεση.
Η κατάσταση Not Runable είναι μια κατάσταση που εισέρχεται όταν συμβαίνουν τα ακόλουθα συμβάντα, καλείται η μέθοδος suspend(), καλείται η μέθοδος sleep(), το νήμα χρησιμοποιεί wait() για να περιμένει τη μεταβλητή συνθήκης και το νήμα περιμένει I/O.
Νεκρό είναι όταν επιστρέφει η μέθοδος Run() ή ένα άλλο νήμα καλεί τη μέθοδο stop() και το νήμα εισέρχεται σε νεκρή κατάσταση. Παρακάτω είναι δύο απλά παραδείγματα Thread.
Περίληψη: Γιατί να χρησιμοποιήσετε το Thread (multi-threading), αυτό γίνεται για να αποτρέψετε τον αποκλεισμό του κύριου νήματος, εάν χρειάζεται να επεξεργαστείτε μεγάλο όγκο δεδομένων ή να καλέσετε μια χρονοβόρα μέθοδο, πρέπει να χρησιμοποιήσουμε το Thread multi-threading.
Παράδειγμα:
Μη χρήση πολλαπλών νημάτων: Η διεπαφή δεν ανταποκρίνεται... Είναι επειδή το multithreading δεν χρησιμοποιείται
|