diff --git a/src/advance/concurrency-with-threads/sync1.md b/src/advance/concurrency-with-threads/sync1.md index 6ef2477b..ef50f6fe 100644 --- a/src/advance/concurrency-with-threads/sync1.md +++ b/src/advance/concurrency-with-threads/sync1.md @@ -191,7 +191,7 @@ Result: 10 现在我们又有了新的武器,由于`Mutex`可以支持修改内部数据,当结合`Arc`一起使用时,可以实现多线程的内部可变性。 -简单总结下:`Rc/RefCell`用于单线程内部可变性, `Arc/Mutext`用于多线程内部可变性。 +简单总结下:`Rc/RefCell`用于单线程内部可变性, `Arc/Mutex`用于多线程内部可变性。 #### 需要小心使用的 Mutex diff --git a/src/advance/smart-pointer/rc-arc.md b/src/advance/smart-pointer/rc-arc.md index dd2e7657..e0265f8f 100644 --- a/src/advance/smart-pointer/rc-arc.md +++ b/src/advance/smart-pointer/rc-arc.md @@ -83,7 +83,7 @@ fn main() { 事实上,`Rc` 是指向底层数据的不可变的引用,因此你无法通过它来修改数据,这也符合 Rust 的借用规则:要么存在多个不可变借用,要么只能存在一个可变借用。 -但是实际开发中我们往往需要对数据进行修改,这时单独使用 `Rc` 无法满足我们的需求,需要配合其它数据类型来一起使用,例如内部可变性的 `RefCell` 类型以及互斥锁 `Mutex`。事实上,在多线程编程中,`Arc` 跟 `Mutext` 锁的组合使用非常常见,它们既可以让我们在不同的线程中共享数据,又允许在各个线程中对其进行修改。 +但是实际开发中我们往往需要对数据进行修改,这时单独使用 `Rc` 无法满足我们的需求,需要配合其它数据类型来一起使用,例如内部可变性的 `RefCell` 类型以及互斥锁 `Mutex`。事实上,在多线程编程中,`Arc` 跟 `Mutex` 锁的组合使用非常常见,它们既可以让我们在不同的线程中共享数据,又允许在各个线程中对其进行修改。 #### 一个综合例子