Nebenläufigkeit in Go (Golang): Ein praktischer Leitfaden
Nebenläufigkeit in Go (Golang): Ein praktischer Leitfaden
Zusammenfassung:
Das Buch „Nebenläufigkeit in Go (Golang)“ ist ein umfassender praktischer Leitfaden, der Ihnen hilft, eines der leistungsstärksten und gleichzeitig komplexesten Themen der Programmiersprache Go zu meistern. Nebenläufigkeit ist tief in der Architektur von Go verankert, und ohne ihr Verständnis ist es unmöglich, effiziente, schnelle und skalierbare Anwendungen zu erstellen. Dieses Buch führt Sie von den Grundlagen bis zu fortgeschrittenen Mustern, die in Produktionssystemen verwendet werden.
Worum geht es in diesem Buch
Das Buch beginnt mit grundlegenden Konzepten: Was sind Goroutinen und wie unterscheiden sie sich von Betriebssystem-Threads, wie funktionieren Kanäle (gepuffert und ungepuffert), und wie synchronisiert man den Zugriff auf Daten korrekt mit Mutexen und atomaren Operationen. Sie erfahren, wie Sie Wettlaufsituationen (Race Conditions) und Deadlocks vermeiden. Anschließend geht der Autor zu komplexeren Themen über:
- Muster mit
selectund Timeouts - Organisation von Daten-Pipelines (Pipeline)
- Verwaltung einer Gruppe von Goroutinen mit
sync.WaitGroupunderrgroup - Verwendung eines Worker-Pools zur Steuerung der Parallelität
- Kontexte (context) und Abbruch von Operationen
- Fortgeschrittene Synchronisationsprimitive:
sync.Once,sync.Pool,sync.Cond - Testen von nebenläufigem Code mit
go test -race
Für wen ist dieses Buch geeignet
Das Buch ist nützlich für:
- Anfängende Go-Entwickler, die bereits die Syntax der Sprache beherrschen und verstehen möchten, wie man effiziente Multithread-Programme schreibt
- Erfahrene Programmierer anderer Sprachen (Java, C#, Python), die zu Go wechseln und dessen einzigartiges Nebenläufigkeitsmodell erlernen möchten
- Backend-Entwickler, die hochlastige Dienste, Microservices, Webserver und Echtzeitsysteme erstellen
- Studenten und alle, die sich für parallele Programmierung interessieren und Best Practices erlernen möchten
Was Sie nach der Lektüre wissen werden
Nach dem Studium des Materials werden Sie in der Lage sein:
- Nebenläufige Architekturen korrekt zu entwerfen und typische Fehler zu vermeiden
- Goroutinen und Kanäle effektiv zur Datenübertragung und Synchronisation einzusetzen
- Zuverlässigen Code zu schreiben, der vor Datenrennen und Deadlocks geschützt ist
- Fortgeschrittene Muster anzuwenden: Fan-In, Fan-Out, Or-Done, Tee-Channel, Bridge-Channel
- Nebenläufigkeit mit context und Graceful Shutdown in reale Projekte zu integrieren
- Nebenläufigen Code zu profilieren und zu debuggen
Das Buch enthält zahlreiche Codebeispiele, die sofort ausgeführt und modifiziert werden können. Alle Beispiele werden von detaillierten Kommentaren und Erläuterungen begleitet. Dies ist nicht nur Theorie – es ist ein praktischer Leitfaden, der Ihr ständiger Begleiter zum Thema Nebenläufigkeit in Go sein wird.
Der Autor des Buches ist Alexey Kuznetsov, Senior Backend-Entwickler mit 10 Jahren Erfahrung, von denen er die letzten 6 Jahre in hochlastigen Projekten mit Go gearbeitet hat. Alexey ist bekannt für seine Vorträge auf Konferenzen der Go-Community und eine Reihe von Artikeln zur nebenläufigen Programmierung.