并发编程
如下是将要涉及到的内容:
- 如何创建线程来同时运行多段代码。
- 消息传递(Message passing)并发,其中通道(channel)被用来在线程间传递消息。
- 共享状态(Shared state)并发,其中多个线程可以访问同一片数据。
Sync
和Send
trait,他们允许 Rust 的并发保证能被扩展到用户定义的和标准库中提供的类型中。
channel 允许多个放送者,只有一个接受者
互斥器一次只允许一个线程访问数据
原子引用计数Arc<T>
Send
标记 trait 表明类型的所有权可以在线程间传递。
Sync
标记 trait 表明一个实现了 Sync
的类型可以安全的在多个线程中拥有其值的引用。换一种方式来说,对于任意类型 T
,如果 &T
(T
的引用)是 Send
的话 T
就是 Sync
的,这意味着其引用就可以安全的发送到另一个线程。类似于 Send
的情况,基本类型是 Sync
的,完全由 Sync
的类型组成的类型也是 Sync
的。