Τι είναι η ρουτίνα go;
Τι είναι η ρουτίνα go;

Βίντεο: Τι είναι η ρουτίνα go;

Βίντεο: Τι είναι η ρουτίνα go;
Βίντεο: 30. Η καθημερινή ρουτίνα 2024, Νοέμβριος
Anonim

Οι γορουτίνες είναι συναρτήσεις ή μέθοδοι που εκτελούνται ταυτόχρονα με άλλες συναρτήσεις ή μεθόδους. Οι γορουτίνες μπορούν να θεωρηθούν ως νήματα μικρού βάρους. Το κόστος δημιουργίας α Γορουτίνα είναι μικροσκοπικό σε σύγκριση με ένα νήμα. Ως εκ τούτου είναι κοινό για Πηγαίνω εφαρμογές για να τρέχουν χιλιάδες Goroutine ταυτόχρονα.

Εδώ, τι είναι ένα κανάλι σε λειτουργία;

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

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

Κατά συνέπεια, πώς χρησιμοποιείτε μια Goroutine;

Για να καλέσετε αυτή τη συνάρτηση σε α γορουτίνα , χρήση πήγαινε f(s). Αυτό το νέο γορουτίνα θα εκτελεστεί ταυτόχρονα με τον καλούντα. Μπορείτε επίσης να ξεκινήσετε ένα γορουτίνα για μια ανώνυμη κλήση συνάρτησης. Οι δύο κλήσεις λειτουργιών μας εκτελούνται ασύγχρονα χωριστά γορουτίνες τώρα.

Μπορεί ένα Goroutine να επιστρέψει μια τιμή;

Τρέξιμο γορουτίνα (ασύγχρονα) και ανάκτηση επιστρεφόμενη τιμή από τη λειτουργία είναι ουσιαστικά αντιφατικές ενέργειες. Αλλά όταν εκχωρείτε λειτουργία επιστρεφόμενη τιμή σε μια μεταβλητή που περιμένετε να έχετε αυτό αξία εντός της μεταβλητής. Όταν λοιπόν κάνετε αυτό x:= go doSomething(arg) λέτε: Συνεχίστε, μην περιμένετε τη συνάρτηση!

Συνιστάται: