Junior — Middle
Könnten Sie das Konzept der leichten Threads und deren Unterschiede zu normalen Ausführungsthreads erklären?
sobes.tech KI
Antwort von AI
Leichte Threads (Goroutines in Go) sind eine Abstraktion für die parallele Ausführung von Code, die ressourcenschonender und effizienter ist als herkömmliche System-Threads.
Unterschiede:
- Ressourcen: Goroutines benötigen deutlich weniger Speicher (normalerweise einige Kilobyte), während ein System-Thread viel mehr benötigt (normalerweise Megabytes).
- Planung: Goroutines werden vom Go-Planer innerhalb des Prozesses geplant, nicht vom Betriebssystem, was einen schnellen Wechsel zwischen ihnen ermöglicht.
- Erstellung: Das Starten einer Goroutine ist sehr schnell und kostengünstig, man kann Tausende oder sogar Millionen gleichzeitig erstellen.
Beispiel für die Erstellung einer Goroutine:
func sayHello() {
fmt.Println("Hallo von der Goroutine")
}
func main() {
go sayHello() // startet die Funktion in einer separaten Goroutine
time.Sleep(time.Second) // wartet, damit die Goroutine ausgeführt werden kann
}
Auf diese Weise ermöglichen leichte Threads eine effiziente Nutzung des Parallelismus ohne große Overheads.