Update multi-threads.md

fix typo: Mutext -> Mutex
pull/1182/head
iscas-zac 2 years ago committed by GitHub
parent d4c55aefcd
commit b8af7f59c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -430,7 +430,7 @@ error: could not compile `hello` due to previous error
报错就解决呗,但 Rust 中的 channel 实现是 mpsc即多生产者单消费者因此我们无法通过克隆消费者的方式来修复这个错误。当然发送多条消息给多个接收者也不在考虑范畴该怎么办似乎陷入了绝境。
雪上加霜的是,就算 `receiver` 可以克隆,但是你得保证同一个时间只有一个`receiver` 能接收消息,否则一个任务可能同时被多个 `Worker` 执行,因此多个线程需要安全的共享和使用 `receiver`,等等,安全的共享?听上去 `Arc` 这个多所有权结构非常适合,互斥使用?貌似 `Mutex` 很适合,结合一下,`Arc<Mutext<T>>`,这不就是我们之前见过多次的线程安全类型吗?
雪上加霜的是,就算 `receiver` 可以克隆,但是你得保证同一个时间只有一个`receiver` 能接收消息,否则一个任务可能同时被多个 `Worker` 执行,因此多个线程需要安全的共享和使用 `receiver`,等等,安全的共享?听上去 `Arc` 这个多所有权结构非常适合,互斥使用?貌似 `Mutex` 很适合,结合一下,`Arc<Mutex<T>>`,这不就是我们之前见过多次的线程安全类型吗?
总之,`Arc` 允许多个 `Worker` 同时持有 `receiver`,而 `Mutex` 可以确保一次只有一个 `Worker` 能从 `receiver` 接收消息。

Loading…
Cancel
Save