Tracks
/
Go
Go
/
Übungen
/
Parallele Buchstabenhäufigkeit
Parallele Buchstabenhäufigkeit

Parallele Buchstabenhäufigkeit

Mittel

Anleitung

Zähle die Häufigkeit der Buchstaben in Texten mithilfe paralleler Berechnung.

Bei Parallelität geht es darum, Dinge parallel zu erledigen, die man auch nacheinander erledigen kann. Ein häufiges Beispiel ist das Zählen der Buchstabenhäufigkeit. Nutze die Parallelität, um die Gesamthäufigkeit jedes Buchstabens in einer Liste von Texten zu berechnen.

Nebenläufigkeit vs. Parallelität

Go unterstützt Nebenläufigkeit über „Goroutinen", die mit dem Schlüsselwort go gestartet werden. Das ist ein einfacher, leichtgewichtiger und eleganter Weg, Nebenläufigkeit zu ermöglichen, und eine der größten Stärken der Sprache.

Du wirst feststellen, dass diese Übung zwar Parallele Buchstabenhäufigkeit heißt, der Begriff „parallel" in Go aber nicht besonders oft auftaucht. Gophers verwenden lieber den Begriff nebenläufig, um die Verwaltung mehrerer unabhängiger Goroutinen zu beschreiben („Prozesse" oder „Threads" in anderen Sprachkontexten). Obwohl diese Begriffe oft synonym verwendet werden, achten Gophers gern auf technische Genauigkeit und sagen „nebenläufig", wenn sie die scheinbar gleichzeitige Ausführung von Goroutinen besprechen.

Wir können unsere Programme zwar für parallele Ausführung planen, und manchmal scheinen sie auch parallel zu laufen, doch ohne genaue Kenntnis des Ausführungskontexts unseres Codes können wir nur garantieren, dass die Prozesse nebenläufig ablaufen. Mit anderen Worten: Sie werden vielleicht sequenziell schneller ausgeführt, als wir es unterscheiden können, aber nicht wirklich gleichzeitig.

Mehr dazu findest du im Beitrag des Go-Blogs: Concurrency is not parallelism.

Ressourcen zur Nebenläufigkeit

Wenn die Nebenläufigkeit in Go für dich neu ist, findest du hier einige Ressourcen für den Einstieg. Wir empfehlen, sie dir anzusehen, bevor du mit dieser Übung beginnst:

Wenn du noch tiefer einsteigen möchtest, kannst du das Buch Concurrency in Go von @kat-co lesen.

Testen

Bei dieser Übung können die Unit-Tests nicht feststellen, ob du eine gute nebenläufige Lösung geschrieben hast. Stattdessen ist es am besten, diese Übung lokal zu lösen und die Benchmarks mit go test -bench . auszuführen. Bei einer guten Lösung solltest du sehen, dass die nebenläufige Version eine geringere Anzahl Nanosekunden pro Operation (ns/op) anzeigt als die sequenzielle Version.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Go Exercism

Bereit, mit Parallele Buchstabenhäufigkeit zu starten?

Melde dich bei Exercism an, um Go mit 34 Konzepte165 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.

Tauche tiefer in Parallele Buchstabenhäufigkeit ein!

Wir schauen uns die Unterschiede zwischen Nebenläufigkeit und Parallelität an und betrachten verschiedene Ansätze, die Sprachen wie JavaScript, Go, Elixir und Rust wählen.