Go

Goroutines-basis

Goroutines, go-sleutelwoord, sync.WaitGroup, runtime.GOMAXPROCS, goroutine-leaks

20 gespreksvragen·
Junior
1

Wat is een goroutine in Go?

Antwoord

Een goroutine is een functie die gelijktijdig met andere functies wordt uitgevoerd en wordt beheerd door de Go-runtime in plaats van door het OS. Hij is extreem lichtgewicht (enkele KB initiële stack) vergeleken met een OS-thread (meerdere MB). De Go-scheduler kan duizenden of zelfs miljoenen goroutines multiplexen op een beperkt aantal OS-threads, waardoor concurrency in Go zeer toegankelijk wordt.

2

Hoe start je een nieuwe goroutine in Go?

Antwoord

Het sleutelwoord go gevolgd door een functieaanroep start een nieuwe goroutine. Bijvoorbeeld 'go myFunction()' of 'go func() { ... }()' voor een anonieme functie. De goroutine wordt onmiddellijk parallel aan de aanroepende code uitgevoerd. Let op: de main-functie wacht niet automatisch tot gestarte goroutines klaar zijn.

3

Wat is het belangrijkste verschil tussen een goroutine en een OS-thread?

Antwoord

Een goroutine verbruikt ongeveer 2 KB initiële stack, terwijl een OS-thread doorgaans 1-2 MB nodig heeft. De Go-runtime beheert het scheduling van goroutines in user space (M:N-scheduling) en multiplext duizenden goroutines op een paar OS-threads. Dit maakt het mogelijk miljoenen goroutines te creëren zonder het systeem te overbelasten, in tegenstelling tot OS-threads die beperkt worden door resources.

4

Wat gebeurt er als het hoofdprogramma eindigt voordat een goroutine klaar is?

5

Hoe beheert de Go-runtime de uitvoering van goroutines?

+17 gespreksvragen

Beheers Go voor je volgende gesprek

Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.

Begin gratis