Skip to content

Commit

Permalink
Merge pull request #839 from FomalhautLeo/patch-1
Browse files Browse the repository at this point in the history
Update ch16-03-shared-state.md
  • Loading branch information
KaiserY authored Dec 11, 2024
2 parents 2b4f09b + 7a60d93 commit 9c6e06f
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/ch16-03-shared-state.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@

#### 原子引用计数 `Arc<T>`

所幸 `Arc<T>` 正是这么一个类似 `Rc<T>` 并可以安全的用于并发环境的类型。字母 “a” 代表 **原子性**_atomic_),所以这是一个 **原子引用计数**_atomically reference counted_)类型。**原子类型** (Atomics) 是另一类这里还未涉及到的并发原语:请查看标准库中 [`std::sync::atomic`][atomic] 的文档来获取更多细节。目前我们只需要知道:原子类型就像基本类型一样,可以安全的在线程间共享
所幸 `Arc<T>` 正是这么一个类似 `Rc<T>` 并可以安全的用于并发环境的类型。字母 “a” 代表 **原子性**_atomic_),所以这是一个 **原子引用计数**_atomically reference counted_)类型。**原子类型** (Atomics) 是另一类这里还未涉及到的并发原语:请查看标准库中 [`std::sync::atomic`][atomic] 的文档来获取更多细节。目前我们只需要知道:原子类型就像基本类型一样,可以安全地在线程间共享

你可能会好奇,为什么不是所有的基本类型都是原子性的?为什么标准库中的类型没有全部默认使用 `Arc<T>` 实现?原因在于,线程安全会造成性能损失,我们希望只在必要时才为此买单。如果只是在单线程中对值进行操作,原子性提供的保证并无必要,而不加入原子性可以使代码运行得更快。

Expand Down

0 comments on commit 9c6e06f

Please sign in to comment.