Programmeren in Go/Goroutines
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.