diff --git a/src/ch16-03-shared-state.md b/src/ch16-03-shared-state.md index 0865768..6d247be 100644 --- a/src/ch16-03-shared-state.md +++ b/src/ch16-03-shared-state.md @@ -93,7 +93,7 @@ #### 原子引用计数 `Arc` -所幸 `Arc` 正是这么一个类似 `Rc` 并可以安全的用于并发环境的类型。字母 “a” 代表 **原子性**(_atomic_),所以这是一个 **原子引用计数**(_atomically reference counted_)类型。**原子类型** (Atomics) 是另一类这里还未涉及到的并发原语:请查看标准库中 [`std::sync::atomic`][atomic] 的文档来获取更多细节。目前我们只需要知道:原子类型就像基本类型一样,可以安全的在线程间共享。 +所幸 `Arc` 正是这么一个类似 `Rc` 并可以安全的用于并发环境的类型。字母 “a” 代表 **原子性**(_atomic_),所以这是一个 **原子引用计数**(_atomically reference counted_)类型。**原子类型** (Atomics) 是另一类这里还未涉及到的并发原语:请查看标准库中 [`std::sync::atomic`][atomic] 的文档来获取更多细节。目前我们只需要知道:原子类型就像基本类型一样,可以安全地在线程间共享。 你可能会好奇,为什么不是所有的基本类型都是原子性的?为什么标准库中的类型没有全部默认使用 `Arc` 实现?原因在于,线程安全会造成性能损失,我们希望只在必要时才为此买单。如果只是在单线程中对值进行操作,原子性提供的保证并无必要,而不加入原子性可以使代码运行得更快。