Ποια είναι η διαφορά μεταξύ κορουτίνας και νήματος;
Ποια είναι η διαφορά μεταξύ κορουτίνας και νήματος;

Βίντεο: Ποια είναι η διαφορά μεταξύ κορουτίνας και νήματος;

Βίντεο: Ποια είναι η διαφορά μεταξύ κορουτίνας και νήματος;
Βίντεο: Ποια είναι η διαφορά μεταξύ Ψυχανάλυσης και Ψυχοθεραπείας; 2024, Ενδέχεται
Anonim

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

Με αυτόν τον τρόπο, ποιες είναι οι κορουτίνες που εκτελείται σε διαφορετικό νήμα;

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

Επιπλέον, τι είναι το νήμα στον προγραμματισμό; ΕΝΑ Νήμα στην επιστήμη των υπολογιστών είναι συντομογραφία του α Νήμα της εκτέλεσης. Νήματα είναι ένας τρόπος για ένα πρόγραμμα να χωρίσει τον εαυτό του (που ονομάζεται "split") σε δύο ή περισσότερες εργασίες που εκτελούνται ταυτόχρονα (ή ψευδο-ταυτόχρονα).

Επίσης, να ξέρετε είναι, τι είναι το Coroutine είναι τρέχει σε νέο νήμα;

Τι συμβαίνει με το α κορουτίνα είναι ότι είναι τρέξιμο στην κύρια Νήμα κάθε πλαίσιο και εκτελείται έως ότου πραγματοποιήσει μια απόδοση - στη συνέχεια θα ανασταλεί μέχρι να εκπληρωθεί η συνθήκη απόδοσης. ΕΝΑ Νήμα αποτελεσματικά τρέχει ταυτόχρονα με άλλους κωδικούς (αυτό ισχύει μόνο όταν έχετε πολλούς πυρήνες).

Πότε πρέπει να χρησιμοποιήσω το runBlocking;

Στην πραγματικότητα εσύ χρησιμοποιήστε το runBlocking για να καλέσετε λειτουργίες αναστολής σε κωδικό "μπλοκαρίσματος" που διαφορετικά δεν θα μπορούσαν να κληθούν εκεί ή με άλλα λόγια: εσείς χρήση για να καλέσετε συναρτήσεις αναστολής εκτός του πλαισίου κορουτίνας (στο παράδειγμά σας το μπλοκ που μεταβιβάστηκε στο async είναι η συνάρτηση αναστολής).

Συνιστάται: