Programmeren in Go/Goroutines: verschil tussen versies

Uit Wikibooks
Verwijderde inhoud Toegevoegde inhoud
Vangelis (overleg | bijdragen)
splitsing pagina's
 
corrigeren
Labels: Bewerking via mobiel Bewerking via mobiele website
Regel 29: Regel 29:




{{sub}}
{{subcribe}}

Versie van 2 jul 2018 15:24

Programmeren in Go

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.


Sjabloon:Subcribe

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