Go: Konzepte für nebenläufige Systeme
Go (Golang) wurde bei Google entwickelt und ist für Server, CLI-Tools und Cloud-native Dienste beliebt. Sein Markenzeichen ist einfache Nebenläufigkeit.
Goroutines
Eine Goroutine ist ein leichtgewichtiger Thread: go funktion() startet sie. Tausende Goroutines sind normal – der Scheduler verteilt sie auf wenige OS-Threads.
Channels
Channels sind typisierte Kommunikationsröhren zwischen Goroutines:
ch := make(chan int)
go func() { ch <- 42 }()
wert := <-chSlices und Maps
slice := []int{1,2,3}, m := map[string]int{}. Slices wachsen dynamisch, Maps liefern value, ok := m[key].
Interfaces
Interfaces werden implizit erfüllt: Ein Typ genügt einem Interface, wenn er die Methoden hat. Das ermöglicht elegante Abstraktionen ohne Vererbung.
Typische Einsatzgebiete
- Web-APIs (net/http, Gin, Echo).
- CLI-Tools (Docker, kubectl, Hugo sind in Go geschrieben).
- Netzwerkdienste und Proxys.
Weiterführend: Programmiersprachen.