Wat is een go-routine?
Wat is een go-routine?

Video: Wat is een go-routine?

Video: Wat is een go-routine?
Video: Go in 100 Seconds 2024, Mei
Anonim

Goroutines zijn functies of methoden die gelijktijdig met andere functies of methoden worden uitgevoerd. Goroutines kunnen worden gezien als lichtgewicht draden. De kosten van het maken van een Goroutine is klein in vergelijking met een draad. Vandaar zijn gemeenschappelijke voor Gaan applicaties om duizenden Goroutines tegelijk te laten draaien.

Hierin, wat is een kanaal in go?

In Gaan taal, een kanaal is een medium waardoor een goroutine communiceert met een andere goroutine en deze communicatie is lock-free. Of met andere woorden, een kanaal is een techniek die het mogelijk maakt om de ene goroutine gegevens naar een andere goroutine te laten sturen.

Bovendien, hoeveel Goroutines kunnen er tegelijk rennen? Op een machine waarop 4 GB geheugen is geïnstalleerd, beperkt dit het maximum aantal goroutines tot iets minder dan 1 miljoen. Het is praktisch om honderdduizenden goroutines in dezelfde adresruimte.

Dus, hoe gebruik je een Goroutine?

Om deze functie aan te roepen in a goroutine , gebruik maken van ga f(s). Deze nieuwe goroutine gelijktijdig met de aanroepende wordt uitgevoerd. Je kunt ook beginnen met een goroutine voor een anonieme functieaanroep. Onze twee functie-aanroepen lopen asynchroon in aparte goroutines nu.

Kan een Goroutine een waarde retourneren?

Loop goroutine (asynchroon) en ophalen winstwaarde van functie zijn in wezen tegenstrijdige acties. Maar wanneer u een functie toewijst winstwaarde naar een variabele waarvan u verwacht dat deze dit heeft waarde binnen de variabele. Dus als je dat doet x:= go doSomething(arg) dan zeg je: Ga door, wacht niet op de functie!

Aanbevolen: