Go

Concurrency-Patterns

Worker Pools, Pipelines, Fan-out/Fan-in, Cancellation, Context, errgroup, Semaphore

24 Interview-Fragen·
Mid-Level
1

Was ist ein Worker Pool in Go?

Antwort

Ein Worker Pool ist ein Concurrency-Pattern, das eine feste Anzahl von Goroutines (Worker) verwendet, um Tasks aus einem gemeinsamen Channel zu verarbeiten. Dieses Pattern ermöglicht es, die Anzahl aktiver Goroutines zu begrenzen und den Verbrauch von Systemressourcen zu steuern. Anders als beim Erzeugen einer Goroutine pro Task verwendet der Worker Pool einen Satz von Workern wieder, um ein großes Volumen an Tasks effizient zu verarbeiten.

2

Was ist der Hauptvorteil eines Worker Pools gegenüber dem Erzeugen einer Goroutine pro Task?

Antwort

Das Begrenzen der Anzahl aktiver Goroutines ermöglicht es, den Verbrauch von Systemressourcen (Speicher und CPU) zu steuern und Überlastung zu vermeiden. Das Erzeugen einer Goroutine pro Task kann zu Tausenden oder Millionen gleichzeitiger Goroutines führen, die den Scheduler sättigen und den Speicher erschöpfen. Der Worker Pool hält eine optimale Anzahl von Workern, die Tasks sequenziell verarbeiten, und gewährleistet so vorhersehbare Performance auch unter hoher Last.

3

Was ist eine Pipeline im Kontext der Concurrency in Go?

Antwort

Eine Pipeline ist eine Reihe von Stages, die durch Channels verbunden sind, wobei jede Stage eine Gruppe von Goroutines ist, die dieselbe Funktion ausführen. Jede Stage empfängt Daten über Eingabe-Channels, führt eine Verarbeitung durch und sendet dann Ergebnisse über Ausgabe-Channels. Dieses Pattern ermöglicht es, komplexe Verarbeitung in einfache und wiederverwendbare Stages zu zerlegen und so die Komposition und das Testen jeder Komponente unabhängig zu erleichtern.

4

Wie schließt man einen Channel in einem Worker Pool korrekt, um das Ende der Verarbeitung zu signalisieren?

5

Was ist der Unterschied zwischen Fan-out und Fan-in?

+21 Interview-Fragen

Meistere Go für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten