Skip to content

Latest commit

 

History

History
22 lines (11 loc) · 916 Bytes

README.md

File metadata and controls

22 lines (11 loc) · 916 Bytes

Rust实战

并发

创建一个新线程,调用thread::spawn函数并传递一个闭包,其重包含希望在新线程运行的代码。

一个确保安全并发的方式是消息传递(message passing),线程通过发送包含数据的消息来相互通信。

“Do not communicate by sharing memory; instead, share memory by communicating.”

通道(channel)来实现消息传递,创建通道,使用mpsc::channel函数。

不允许在线程间直接传递引用,那如何在多个线程间安全地共享变量呢?

不可变的变量,通过Arc<T>来共享,它是Rc<T>的线程安全版本,其内部使用了原子操作。

有两个并发概念是内嵌于语言中的:std::marker中的SyncSend trait,使得并发保证能被扩展到用户定义的和标准库中提供的类型中。

代码实现