Kapitel 10. Gleichzeitigkeit
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Große Programme setzen sich oft aus vielen kleineren Unterprogrammen zusammen. Ein Webserver zum Beispiel bearbeitet Anfragen von Webbrowsern und liefert als Antwort HTML-Webseiten. Jede Anfrage wird wie ein kleines Programm behandelt.
Es wäre ideal, wenn Programme wie diese ihre kleineren Komponenten gleichzeitig ausführen könnten (im Fall des Webservers, um mehrere Anfragen zu bearbeiten). Die gleichzeitige Bearbeitung von mehr als einer Aufgabe wird als Gleichzeitigkeit bezeichnet. Go bietet mit Goroutines und Channels eine umfangreiche Unterstützung für Gleichzeitigkeit.
Goroutinen
Eine Goroutine ist eine Funktion, die gleichzeitig mit anderen Funktionen ausgeführt werden kann. Um eine Goroutine zu erstellen, verwenden wir das Schlüsselwort go, gefolgt von einem Funktionsaufruf:
packagemainimport"fmt"funcf(nint){fori:=0;i<10;i++{fmt.Println(n,":",i)}}funcmain(){gof(0)varinputstringfmt.Scanln(&input)}
Dieses Programm besteht aus zwei Goroutinen. Die erste Goroutine ist implizit und ist die Hauptfunktion selbst. Die zweite Goroutine wird erstellt, wenn wir go f(0) aufrufen. Wenn wir eine Funktion aufrufen, führt unser Programm normalerweise alle Anweisungen in einer Funktion aus und kehrt dann zur nächsten Zeile nach dem Aufruf zurück. Bei einer Goroutine kehren wir sofort zur nächsten ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access