Go

Goroutines-Grundlagen

Goroutines, go-Schlüsselwort, sync.WaitGroup, runtime.GOMAXPROCS, Goroutine-Leaks

20 Interview-Fragen·
Junior
1

Was ist eine Goroutine in Go?

Antwort

Eine Goroutine ist eine Funktion, die nebenläufig zu anderen Funktionen ausgeführt wird und vom Go-Runtime statt vom OS verwaltet wird. Sie ist extrem leichtgewichtig (einige KB anfänglicher Stack) im Vergleich zu einem OS-Thread (mehrere MB). Der Go-Scheduler kann Tausende oder sogar Millionen von Goroutines auf eine begrenzte Anzahl von OS-Threads multiplexen, wodurch Nebenläufigkeit in Go sehr zugänglich wird.

2

Wie startet man eine neue Goroutine in Go?

Antwort

Das Schlüsselwort go gefolgt von einem Funktionsaufruf startet eine neue Goroutine. Zum Beispiel 'go myFunction()' oder 'go func() { ... }()' für eine anonyme Funktion. Die Goroutine wird sofort parallel zum aufrufenden Code ausgeführt. Achtung: Die main-Funktion wartet nicht automatisch darauf, dass gestartete Goroutines beendet werden.

3

Was ist der Hauptunterschied zwischen einer Goroutine und einem OS-Thread?

Antwort

Eine Goroutine verbraucht etwa 2 KB anfänglichen Stack, während ein OS-Thread typischerweise 1-2 MB benötigt. Das Go-Runtime verwaltet das Scheduling der Goroutines im User Space (M:N-Scheduling) und multiplext Tausende von Goroutines auf wenige OS-Threads. Dies ermöglicht es, Millionen von Goroutines zu erstellen, ohne das System zu überlasten, im Gegensatz zu OS-Threads, die durch Ressourcen begrenzt sind.

4

Was passiert, wenn das Hauptprogramm endet, bevor eine Goroutine fertig ist?

5

Wie verwaltet das Go-Runtime die Ausführung von Goroutines?

+17 Interview-Fragen

Meistere Go für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten