Go Concurrent Programming
On Java you can run 1000’s or tens of 1000’s threads. On Go you can run
hundreds of thousands or millions of goroutines.
Google Go (Golang) ist die Programmiersprache mit feinen Concurrency Konzepten.
Golang bietet die direkte Unterstützung für die parallele Ausführung via
goroutines direkt in der Syntax und unterscheidet sich damit von anderen
Programmiersprachen wie z.B. Java.
goroutines sind nicht Threads und damit wird das Scheduling nicht via
das Betriebsystem sondern über die Go Runtime behandelt, welche das Multiplexing
über ein definierte Anzahl von Threads oder Prozessoren übernimmt.
Die Synchronisierung der parallelen Routinenen erfolgt via Channels (Signale)
und Mutual Exclusion Locks. Mehrere Channels (Signale) sind via Select abfangbar.
Diese Konzepte ermöglichen das effiziente Programmieren, aber die Konzepte müssen dabei verstanden werden.
Mit dem Data Races Detector findet man in Golang mögliche Ablauffehler,
die ansonsten nur sehr schwierig zu finden sind.
Auch die effektive parallele Ausführung über mehrere Prozessoren (CPU's)
hinweg wird direkt unterstützt, parallel heisst aber nicht concurrent.
Dieser Kurs bietet Ihnen eine vertiefte Einführung in die parallele oder
concurrent Programmierung mit Google Go. Anhand von Beispielen und Übungen
lernen Sie wie man das Golang Concurrent Package richtig anwendet für Ihre Applikationen.