Einführung
Vielleicht haben Sie schon gehört, dass sich Go optimal für Nebenläufigkeit eignet. Dies ist wohl das wichtigste Feature, durch das Go so beliebt geworden ist und häufig zum Schreiben anderer Software wie Docker, Kubernetes und Terraform gewählt wird.
Bevor Sie sich mit der Funktionsweise von Nebenläufigkeit in Go befassen, müssen Sie am besten alles vergessen, was Sie bereits von anderen Programmiersprachen her kennen. Der Ansatz von Go unterscheidet sich davon.
An diesem Punkt verfügen Sie bereits über die erforderlichen Kenntnisse, um sich mit fortgeschritteneren Themen wie Nebenläufigkeit zu befassen. Dennoch beginnen wir zunächst mit dem Grund, warum Nebenläufigkeit erforderlich ist. Wir werden die verschiedenen Themen nach und nach behandeln.
Es wird empfohlen, alle Codebeispiele zu üben und erst dann fortzufahren, wenn Sie die Konzepte wirklich verstanden haben. Wie Sie bereits in früheren Modulen gelernt haben, lassen sich die Konzepte durch praktische Übungen besser verstehen.
Sehen wir uns zunächst an, was Sie in diesem Modul lernen.
Lernziele
In diesem Modul erfahren Sie mehr über die folgenden Aspekte:
- Funktionsweise von Nebenläufigkeit in Go
- Unterschied zwischen Nebenläufigkeit und Parallelität
- Funktionsweise der Kommunikation in einem gleichzeitigen Programm mithilfe von Kanälen
- Schreiben eines Programms, das durch Implementieren von Nebenläufigkeit schneller ausgeführt wird
- Schreiben dynamischer Programme, die mithilfe von Puffern die Nebenläufigkeit nutzen, wenn Sie eine begrenzte Anzahl gleichzeitiger Aufrufe starten möchten
Voraussetzungen
- Eine für das Erstellen von Anwendungen eingerichtete Go-Umgebung. Im Idealfall sollten Sie Go lokal installiert und konfiguriert und Visual Studio Code mit der Go-Erweiterung installiert haben.
- Möglichkeit zum Erstellen und Ändern von
.go
-Dateien - Möglichkeit zum Ausführen von Go-Anwendungen über die Eingabeaufforderung des Terminals
- Kenntnisse der grundlegenden Datentypen wie
string
,int
undboolean
- Kenntnisse über das Schreiben grundlegender Datenablaufsteuerungen wie
if
- undfor
-Anweisungen - Kenntnisse über das Schreiben von Funktionen
- Kenntnisse über die Verwendung von Bibliotheken wie
net/http