/* Page prose (de) */
"ActorsWrappingUp" = "# Zusammenfassung\n\nEin Actor nimmt die Data Races, die du im Kapitel [Gefahren der Nebenläufigkeit](Concurrency%20Hazards.playgroundchapter/Overview) von Hand behoben hast, und verwandelt die Behebung in eine Garantie, die der Compiler erzwingt, indem er nur eine Aufgabe nach der anderen in seinen Zustand lässt. Greife danach, um gemeinsamen Zustand *sicher* zu machen, nicht um Code *schnell* zu machen. Zwei Feinheiten, Reentrancy und was aus dem Actor entkommt, sind dort, wo das eigentliche Lernen liegt, also wäge die Erkenntnisse unten sorgfältig ab.\n\n* Ein **Actor** ist ein Referenztyp, der seinen veränderlichen Zustand schützt, indem er **eine Aufgabe nach der anderen hineinlässt**, und so Data Races auf diesem Zustand von Grund auf ausschließt, und er ersetzt die von Hand gebaute Behebung mit serieller Warteschlange, wobei der Compiler den Schutz erzwingt, sodass es keine Möglichkeit gibt, ihn versehentlich zu überspringen.\n* Von **außen** braucht der Zugriff auf isolierten Zustand `await` (du wartest vielleicht auf deinen Zug); von **innen** ist der Zugriff synchron. `nonisolated` nimmt Mitglieder heraus, die nur unveränderlichen Zustand anfassen.\n* **Reentrancy:** ein Actor wird bei jedem `await` freigegeben, also kann eine andere Aufgabe eintreten. Werte, die vor einem `await` gelesen wurden, können sich danach ändern: halte das Prüfen-dann-Handeln frei von Suspendierung, oder prüfe nach dem Fortsetzen erneut.\n* Bei Actors geht es um **Sicherheit, nicht um Geschwindigkeit.** Sie serialisieren den Zugriff, also wird ein heißer Pfad, der durch einen einzigen Actor geleitet wird, zum Engpass: verwende sie, um gemeinsamen veränderlichen Zustand zu schützen, nicht um Arbeit zu parallelisieren (dafür sind Task Groups da).\n* Werte, die Actor-/Aufgabengrenzen überqueren, müssen **`Sendable`** sein: Wertetypen sind es normalerweise, schlichte veränderliche Klassen nicht. Ein Actor schützt Zustand nur, solange er darin lebt, also öffnet das Zurückgeben einer Referenz auf eine veränderliche Klasse den Race wieder.\n\n---\n\n## Als Nächstes\n\nDas nächste Kapitel, [Globale Actors und Sendable](Global%20Actors%20and%20Sendable.playgroundchapter/Overview), stellt den `@MainActor` vor, der Arbeit an den UI-Thread heftet, und erzählt die vollständige Geschichte davon, was einen Typ sicher zu teilen macht.\n\n[Zurück](@previous)  |  Seite 7 von 7";
