From b8af7f59c6d8b3cfe4057abad32abc97243083a4 Mon Sep 17 00:00:00 2001 From: iscas-zac <92451907+iscas-zac@users.noreply.github.com> Date: Tue, 21 Mar 2023 14:55:08 +0800 Subject: [PATCH] Update multi-threads.md fix typo: Mutext -> Mutex --- src/advance-practice1/multi-threads.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/advance-practice1/multi-threads.md b/src/advance-practice1/multi-threads.md index d763a789..d2398c56 100644 --- a/src/advance-practice1/multi-threads.md +++ b/src/advance-practice1/multi-threads.md @@ -430,7 +430,7 @@ error: could not compile `hello` due to previous error 报错就解决呗,但 Rust 中的 channel 实现是 mpsc,即多生产者单消费者,因此我们无法通过克隆消费者的方式来修复这个错误。当然,发送多条消息给多个接收者也不在考虑范畴,该怎么办?似乎陷入了绝境。 -雪上加霜的是,就算 `receiver` 可以克隆,但是你得保证同一个时间只有一个`receiver` 能接收消息,否则一个任务可能同时被多个 `Worker` 执行,因此多个线程需要安全的共享和使用 `receiver`,等等,安全的共享?听上去 `Arc` 这个多所有权结构非常适合,互斥使用?貌似 `Mutex` 很适合,结合一下,`Arc>`,这不就是我们之前见过多次的线程安全类型吗? +雪上加霜的是,就算 `receiver` 可以克隆,但是你得保证同一个时间只有一个`receiver` 能接收消息,否则一个任务可能同时被多个 `Worker` 执行,因此多个线程需要安全的共享和使用 `receiver`,等等,安全的共享?听上去 `Arc` 这个多所有权结构非常适合,互斥使用?貌似 `Mutex` 很适合,结合一下,`Arc>`,这不就是我们之前见过多次的线程安全类型吗? 总之,`Arc` 允许多个 `Worker` 同时持有 `receiver`,而 `Mutex` 可以确保一次只有一个 `Worker` 能从 `receiver` 接收消息。