Programmeren in Go/Goroutines

Uit Wikibooks
Naar navigatie springen Naar zoeken springen

Programmeren in Go 100 percent.svg

Commentaar
Pakketten
Variabelen en constanten
Assignments
For
Switch
Functies
Defer
Arrays
Slices
Methodes
Types
Goroutines
Channels
Select

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.

Informatie afkomstig van http://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.