Διαφορά μεταξύ ύπνου και αναμονής Διαφορά μεταξύ

Anonim

Sleep vs Wait

καθώς οι υπολογιστές χρησιμοποιούν τεχνητή γλώσσα για να δημιουργούν προγράμματα, να τα ελέγχουν και να τους επιτρέπουν να επικοινωνούν με οδηγίες και να εκφράζουν αλγορίθμους. Αυτή η γλώσσα ονομάζεται γλώσσα προγραμματισμού.

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

Υπάρχουν πολλές γλώσσες υπολογιστών που περιλαμβάνουν γλώσσες υψηλού επιπέδου, όπως: BASIC, C, C ++, Fortran, Pascal και Java. Κάθε εικονική μηχανή και CPU έχει τη δική της γλώσσα υπολογιστή, με τις δικές της αδυναμίες και δυνάμεις, και κάθε εικονική μηχανή τρέχει ένα νήμα όταν ξεκινά. Αυτό το νήμα εκτελεί τον κώδικα εφαρμογής στο πρόγραμμα. Μπορεί να κάνει ένα πρόγραμμα να τρέχει γρηγορότερα και να βοηθά στην απόδοση και τη χρησιμότητά του, ειδικά όταν χρησιμοποιούνται πολλαπλά νήματα.

Οι εικονικές μηχανές, όπως το εικονικό μηχάνημα Java, υποστηρίζουν μια έννοια πολλαπλών σπειρωμάτων με νήματα υψηλότερης προτεραιότητας που εκτελούνται πρώτα πάνω σε νήματα χαμηλότερης προτεραιότητας, διασφαλίζοντας την δίκαιη κατανομή της επεξεργασίας χρόνου.

Χρησιμοποιεί μεθόδους διαχείρισης νήματος οι οποίες μπορούν να δημιουργούν, να ελέγχουν και να τερματίζουν τη ροή των ελέγχων ή των κλωστών σε ένα κοινόχρηστο χώρο. Δύο από αυτές τις μεθόδους διαχείρισης νήματος είναι οι μέθοδοι αναμονής και οι μέθοδοι ύπνου.

Αυτές οι δύο μέθοδοι είναι ξεχωριστές. Η μέθοδος ύπνου ελέγχει την εκτέλεση του νήματος και καθυστερεί την επόμενη ενέργεια ενώ η μέθοδος αναμονής δεν ελέγχει την εκτέλεση του νήματος για να επιτρέψει την εκτέλεση άλλων νημάτων.

Η μέθοδος αναμονής ορίζεται στην κλάση Object και στέλνει το τρέχον νήμα στην κατάσταση μη εκτέλεσης. Χρησιμοποιείται μαζί με τις μεθόδους ειδοποίησης και ειδοποίησηςAll για να αφήσει προσωρινά προσωρινά τον κώδικα εκτέλεσης ενός αντικειμένου και να το επαναλάβει αργότερα.

Λειτουργεί καλώντας ένα αντικείμενο κλειδώματος και αφήνοντας το τρέχον νήμα να συγχρονιστεί με αυτό. Περιμένετε θα απελευθερώσει την κλειδαριά και θα βάλει το νήμα στη λίστα αναμονής και θα επιτρέψει σε άλλα νήματα να συγχρονιστούν με αυτό προκαλώντας το πρωτότυπο νήμα να ξυπνήσει. Ο προγραμματιστής καθορίζει τη συγκεκριμένη ώρα κατά την οποία ξεκινά ξανά η εκτέλεση.

Η μέθοδος ύπνου, από την άλλη πλευρά, ορίζεται ως στατική μέθοδος. Καθυστερεί την εκτέλεση των νημάτων και όχι αντικειμένων καθώς και αναστέλλει το νήμα που εκτελείται. Στέλνει τα τρέχοντα νήματα στην κατάσταση που δεν μπορεί να λειτουργήσει για κάποιο χρονικό διάστημα. Μπορεί να επηρεάσει τη συμπεριφορά των εφαρμογών που είναι πολλαπλών σπειρωμάτων επειδή διατηρεί τις κλειδώσεις συγχρονισμού του τρέχοντος νήματος. Μόλις το νήμα βρίσκεται σε συγχρονισμένο μπλοκ, κανένα άλλο νήμα δεν μπορεί να εισέλθει στο μπλοκ.

Περίληψη:

1. Το "Sleep" είναι μια μέθοδος διαχείρισης νήματος που ορίζεται ως μια στατική μέθοδος ενώ η "wait" είναι μια μέθοδος διαχείρισης νήματος η οποία ορίζεται στην κλάση Object.

2. Ο ύπνος είναι μια μέθοδος που εκτελεί νήματα, ενώ η αναμονή είναι μια μέθοδος που εκτελεί αντικείμενα.

3. Ο ύπνος διατηρεί τις κλειδώσεις συγχρονισμού του τρέχοντος νήματος και επηρεάζει τη συμπεριφορά των εφαρμογών, ενώ δεν περιμένει.

4. Ο ύπνος ελέγχει την εκτέλεση του νήματος και δεν επιτρέπει άλλα νήματα σε ένα συγχρονισμένο μπλοκ ενώ η αναμονή δεν ελέγχει την εκτέλεση του νήματος για να επιτρέψει την εκτέλεση άλλων νημάτων.