Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Warteschlangen entkoppeln zwei Teile

Nach dieser Lektion: Ich kann erklären, warum eine Warteschlange zwei Teile in ihrem eigenen Tempo arbeiten lässt.

Lektion, 45 Min.Keine Befehle

Mittagszeit in der Lieferapp

Eine Lieferapp erzeugt für jede Bestellung eine Rechnung als PDF. Vormittags kommen 5 Bestellungen pro Minute. Um 12 Uhr sind es 40.

Der Rechnungsdienst schafft nur 15 pro Minute. Wartet die App auf jede Rechnung, bricht die Bestellung ab. Das Restaurant verliert Umsatz zur besten Zeit.

Am Ende dieser Lektion

Notiz

Ich kann erklären, warum eine Warteschlange zwei Teile in ihrem eigenen Tempo arbeiten lässt.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Warteschlangeeine Reihe von Aufträgen, die warten
Nachrichtein einzelner Auftrag in der SchlangeRechnung für Bestellung 7001
Producerder Teil, der Nachrichten einreiht
Consumerder Teil, der Nachrichten abholt und erledigt
Rückstaudie Nachrichten, die noch warten
Workereine laufende Kopie eines Consumers

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die Schlange steht zwischen zwei Teilen

Eine Warteschlange ist eine Reihe von Aufträgen, die warten. Die App ist der Producer. Sie legt eine Nachricht ab, etwa „Rechnung für Bestellung 7001“, und macht sofort weiter.

Der Rechnungsdienst ist der Consumer. Er holt die älteste Nachricht, erledigt sie und holt die nächste. Keiner wartet auf den anderen.

Ausprobieren: eine Schlange in Python

Code: python
# Eine Liste als Warteschlange: hinten anhängen, vorne entnehmen.
schlange = []

# Die App hängt drei Aufträge an und macht sofort weiter.
schlange.append("Rechnung für Bestellung 7001")
schlange.append("Rechnung für Bestellung 7002")
schlange.append("Rechnung für Bestellung 7003")
print("Wartend:", len(schlange))

# Der Rechnungsdienst nimmt den ältesten Auftrag zuerst.
auftrag = schlange.pop(0)
print("Bearbeite:", auftrag)
print("Wartend:", len(schlange))

# Hängen Sie die Rechnung für Bestellung 7004 an und entnehmen Sie zwei weitere Aufträge.
# Welcher Auftrag bleibt übrig?

Der Rückstau wächst und schrumpft wieder

Jeder Teil arbeitet in seinem Tempo. Kommen Nachrichten schneller, als der Consumer schafft, wächst der Rückstau. Ist der Ansturm vorbei, holt der Consumer auf.

Dabei geht nichts verloren. Ein Gast bekommt die Rechnung ein paar Minuten später. Das ist viel besser als eine Fehlermeldung bei der Bestellung.

Beispiel: vier Minuten Ansturm

MinuteNeue AufträgeErledigtRückstau danach
1401525
2401550
3101545
401530

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein häufiger Fehler

Warnung

Viele denken, eine Schlange mache die Arbeit schneller. Das stimmt nicht: Der Rechnungsdienst schafft weiter 15 pro Minute. Die Schlange fängt nur einen Ansturm ab. Kommen den ganzen Tag mehr Aufträge, als er schafft, wird der Rückstau nie leer. Dann braucht es mehr Worker.

Mehr Worker leeren den Rückstau schneller

Einen Consumer können Sie mehrfach starten. Jede Kopie heißt Worker und holt eine andere Nachricht. Zwei Worker mit je 15 Rechnungen pro Minute schaffen zusammen 30.

Fällt der Rechnungsdienst für zehn Minuten aus, warten die Nachrichten einfach. Danach geht es bei der ältesten weiter. Kein Auftrag wird vergessen.

Beispiel: ein Rückstau von 600

WorkerRechnungen pro MinuteMinuten bis leer
11540
23020
34514 (aufgerundet)
46010

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Eine Nachricht kann scheitern

Manchmal klappt ein Auftrag nicht, etwa weil die Bestellnummer fehlt. Die Schlange probiert ihn dann einige Male erneut. Hilft das nicht, landet er in einer zweiten Schlange für Fehler.

Dort schaut ein Mensch nach. So blockiert ein kaputter Auftrag nicht alle anderen.

Zwei Grenzen gibt es. Manche Schlangen liefern eine Nachricht selten zweimal oder in leicht anderer Reihenfolge, und Nachrichten bleiben nur begrenzte Zeit erhalten, etwa Tage. Ein Consumer sollte das vertragen.

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.