
Goroutines-basis
Goroutines, go-sleutelwoord, sync.WaitGroup, runtime.GOMAXPROCS, goroutine-leaks
1Wat is een goroutine in Go?
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.
2Hoe start je een nieuwe goroutine in Go?
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.
3Wat is het belangrijkste verschil tussen een goroutine en een OS-thread?
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.
Wat gebeurt er als het hoofdprogramma eindigt voordat een goroutine klaar is?
Hoe beheert de Go-runtime de uitvoering van goroutines?
+17 gespreksvragen
Andere Go-sollicitatieonderwerpen
Go-basis
Go-datastructuren
Go-interfaces
Foutafhandeling
Channels
Go Modules
HTTP-server
HTTP-client
JSON-codering
Database/SQL
context-pakket
Testing
Concurrency-patronen
Synchronisatieprimitieven
Go-webframeworks
REST API-ontwerp
gRPC
Reflection
Geheugenbeheer
Prestatie-optimalisatie
Generics
Go Design Patterns
Microservices
Beveiliging en authenticatie
Docker & Containerization
Kubernetes Basics
Geavanceerd Go
CLI-ontwikkeling
Beheers Go voor je volgende gesprek
Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.
Begin gratis