/* Page prose (de) */
"BarrierFix" = "# Lösung 2: eine nebenläufige Warteschlange mit einer Barriere (Leser-Schreiber)\n\n*Alles* zu serialisieren ist schwerer, als du manchmal brauchst. Den Kontostand zu lesen, beschädigt nichts: hundert Kassierer können die Schublade gleichzeitig *lesen*, ohne Schaden anzurichten. Nur das *Schreiben* muss allein geschehen. Das ist das **Leser-Schreiber-Muster**: Lesevorgänge laufen nebenläufig; Schreibvorgänge erhalten exklusiven Zugriff.\n\nGCD gibt dir das mit einer **Barriere**. In einer nebenläufigen Warteschlange wartet ein mit dem `.barrier`-Flag eingereichter Block, bis jeder frühere Block fertig ist, läuft dann völlig allein und lässt erst danach spätere Blöcke wieder aufnehmen. Lesevorgänge sind schlicht (nebenläufig); Schreibvorgänge sind Barrieren (exklusiv).";
"BarrierFix-2" = "**Sieh es laufen:** `Final balance: 1000 (expected 1000)`, in jedem Lauf. Der Unterschied zu Lösung 1 ist, dass Lesevorgänge (`currentBalance`) nicht aufeinander warten müssen; nur Schreibvorgänge müssen es. Wenn Lesevorgänge die Schreibvorgänge weit überwiegen, ist das ein echter Gewinn. Beachte auch, dass die Koordination jetzt *innerhalb* von `Account` lebt: Aufrufer können nicht vergessen zu sperren, weil es nichts zu merken gibt. Die Synchronisation hinter einer sauberen Schnittstelle zu verstecken, ist die beste Angewohnheit in diesem ganzen Kapitel.\n\n[Zurück](@previous)  |  Seite 5 von 9  |  [Weiter: Deadlock](@next)";
