/* Page prose (de) */
"DispatchSemaphoreLimiting" = "# `DispatchSemaphore`: begrenzen, wie viele gleichzeitig laufen\n\nEine Gruppe beantwortet \"sind sie *alle* fertig?\" Ein Semaphor beantwortet eine andere Frage: \"wie viele sind *gleichzeitig* erlaubt?\"\n\nEin **`DispatchSemaphore`** ist ein Zähler verfügbarer Genehmigungen. Du erstellst ihn mit einer Anfangszahl. `wait()` nimmt eine Genehmigung und blockiert, wenn keine mehr übrig ist; `signal()` gibt eine Genehmigung zurück. Wenn die Zahl etwa 2 ist, können nur zwei Aufgaben gleichzeitig eine Genehmigung halten; alle anderen warten, bis sie an der Reihe sind.\n\nStell dir die Kaffeebar mit fünf Baristas vor, aber einer **einzigen Espressomaschine, die Platz für zwei Siebträger hat**. Nur zwei Shots können gleichzeitig gezogen werden.";
"DispatchSemaphoreLimiting-2" = "Beachte, dass dies **beide** Werkzeuge zusammen verwendet: Der Semaphor begrenzt die Nebenläufigkeit auf zwei, die Gruppe sagt dir, wann alle fünf fertig sind.\n\n**Sieh es laufen:** Du wirst nie mehr als zwei `→ starts` ohne ein `← done` dazwischen sehen. Die Ausgabe kommt in Wellen: Zwei Baristas fangen an, zwei werden fertig, die nächsten zwei fangen an, und so weiter. Die genauen Namen in jeder Welle können zwischen Durchläufen variieren, aber die **Regel bricht nie**: Höchstens zwei Shots werden gleichzeitig gezogen.\n\n* callout(Probier es aus): Ändere `value: 2` auf `value: 1` und alles läuft streng nacheinander. Ändere es auf `5` und alle fangen gleichzeitig an. Diese eine Zahl ist der Regler.\n\n[Zurück](@previous)  |  Seite 6 von 8  |  [Weiter: Ein Semaphor von 1 als Lock](@next)";
