diff --git a/src/advance/smart-pointer/rc-arc.md b/src/advance/smart-pointer/rc-arc.md index e0265f8f..7220a9de 100644 --- a/src/advance/smart-pointer/rc-arc.md +++ b/src/advance/smart-pointer/rc-arc.md @@ -171,7 +171,7 @@ fn main() { error[E0277]: `Rc` cannot be sent between threads safely ``` -表面原因是 `Rc` 不能在线程间安全的传递,实际上是因为它没有实现 `Send` 特征,而该特征是恰恰是多线程间传递数据的关键,我们会在多线程章节中进行讲解。 +表面原因是 `Rc` 不能在线程间安全的传递,实际上是因为它没有实现 `Send` 特征,而该特征恰恰是多线程间传递数据的关键,我们会在多线程章节中进行讲解。 当然,还有更深层的原因:由于 `Rc` 需要管理引用计数,但是该计数器并没有使用任何并发原语,因此无法实现原子化的计数操作,最终会导致计数错误。