/* Page prose (zh-Hans) */
"Overview" = "# Actors\n\n还记得[并发的陷阱](Concurrency%20Hazards.playgroundchapter/Overview)那一章里柜台银行的灾难吗：许多柜员在同一时刻把存款推到同一个共享余额上，最后总额却算*错*了，钱就这么凭空消失了。那是一次 **data race**：两个任务同时读写同一块内存，彼此踩踏。当时你是手动修复它的，把每一次改动都汇集到一个串行队列里，并祈祷自己永远别忘。这一章介绍那个让修复自动化、并由编译器强制执行的现代工具：**actor**。\n\n---\n\n## 你将学到\n\n* 什么是 **actor**，以及它如何通过一次只让一个任务进入来保护可变状态。\n* 为什么从外部调用一个 actor 需要 `await`，但 actor *内部*的代码却是同步运行的，以及 `nonisolated` 有什么用。\n* **重入**：一个 actor 如何跨越 `await` 被重新进入、由此引发的微妙 bug，以及如何防范它。\n* **`Sendable`** 初探：什么东西可以安全地跨越 actor 与任务边界传递的规则。\n\n翻到下一页，让我们再一次见识这个 bug 最简单的形态。\n\n第 1 / 7 页  |  [下一页: 一个 actor 一次只允许一个任务进入](@next)";
