Programmeren in Go/Goroutines: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
corrigeren Labels: Bewerking via mobiel Bewerking via mobiele website |
verbetering Labels: Bewerking via mobiel Bewerking via mobiele website |
||
Regel 29: | Regel 29: | ||
{{ |
{{sub}} |
Huidige versie van 2 jul 2018 om 15:26
Programmeurs vinden concurrency vaak lastig. Go heeft het uitvoeren van meerdere code in dezelfde geheugenruimte in de taal ingebouwd om het een stukje makkelijker te maken. Een Goroutine wordt gestart door het sleutelwoord "go".
func zegHoi() { fmt.Print("Hoi") } func main() { go zegHoi() // zegHoi wordt uitgevoerd en gaat meteen naar volgende regel time.Sleep(1000000000) // Nanoseconden }
We kunnen ook een anonieme functie gebruiken.
func main() { go func() { fmt.Print("hoi") }() // Let op, functie moet worden aangeroepen! time.Sleep(1000000000) }
Buiten dat het geen zin heeft om een aparte Goroutine te openen om naar een console te schrijven is er iets anders: er is helemaal geen garantie dat de Goroutines volledig is uitgevoerd. Daarvoor zijn Channels in het leven geroepen.