/* Page prose (de) */
"WrappingUp" = "# Zusammenfassung\n\nDieses Kapitel sind zwei Hälften eines Versprechens: Globale Actors wie `@MainActor` heften Code an eine einzige serialisierte Domäne, und `Sendable` markiert, welche Werte zwischen Domänen wechseln dürfen. Zusammen lassen sie den Swift-6-Compiler Data Races in Kompilierfehler verwandeln, bevor du überhaupt ausführst. Die Erkenntnisse unten hängen davon ab, zwei entgegengesetzten Abkürzungen zu widerstehen, die diesen Schutz still abschalten.\n\n* **`@MainActor`** garantiert, dass Code auf dem Hauptthread läuft, und ist compilergeprüft: der moderne Ersatz für `DispatchQueue.main.async`. Es (oder jeden actor-isolierten Code) aus einer anderen Domäne aufzurufen braucht **`await`**. Um den MainActor gezielt zu erreichen, springe mit einer Closure per **`MainActor.run { }`** oder führe eine ganze Task dort mit **`Task { @MainActor in }`** aus; sobald du auf dem MainActor bist, verschwinden diese `await`-Sprünge.\n* Isoliere nur das, was wirklich geteilten UI-State anfasst; alles in `@MainActor` zu hüllen zieht hintergrundfreundliche Arbeit auf den Hauptthread und führt die Einfrierungen aus dem Kapitel [Warum Nebenläufigkeit](Why%20Concurrency.playgroundchapter/Overview) wieder ein.\n* **`@globalActor`** lässt dich deinen eigenen Marker für eine einzeln-serialisierte Domäne für ein ganzes Teilsystem definieren; verwende es sparsam.\n* **`Sendable`** markiert Typen als sicher, um Nebenläufigkeitsgrenzen zu überqueren. Werttypen und unveränderliche finale Klassen qualifizieren sich; **eine Klasse mit irgendeinem `var` nicht**, egal wie sorgfältig du sie verwendest: Repariere sie, indem du einen Actor daraus machst, sie unveränderlich machst oder sie isolierst. Greife nur für Typen, die wirklich ihr eigenes Locking verwalten, zu `@unchecked Sendable`, nie um einen Fehler zum Schweigen zu bringen.\n* **`@Sendable`**-Closures (wie die, die `Task` nimmt) dürfen nur Sendable-Werte erfassen und können erfasste `var`s nicht mutieren.\n* Swift 6 nutzt all das, um Data Races in **Fehler zur Kompilierzeit** zu verwandeln: Behandle diese Fehler als den Compiler, der beweist, dass deine Nebenläufigkeit sicher ist.\n\n---\n\n## Als Nächstes\n\n**[Klassisch vs. Modern](Classic%20vs%20Modern.playgroundchapter/Overview)**: dasselbe Problem auf beide Arten gelöst, damit du den ganzen Bogen auf einmal sehen und entscheiden kannst, wann du migrierst.\n\n[Zurück](@previous)  |  Seite 11 von 11";
