Rust 并发

Rust作为一种语言,它其实并不知道怎么做并发或者并行。是标准库提供了操作系统线程和阻塞系统调用的支持。所有的平台都支持这些功能,基于这些一致的功能构建的抽象更容易被广泛接受。而消息传递、绿色线程、异步API这些则没有这么广的支持度,在它们之上构建的抽象就要引入一些权衡取舍,所以我们没有将它们纳入1.0。

但是,Rust构建并发模型的方式也让你可以比较容易地设计自己的并发范式,并作为一个库与其他人的代码一起工作。只要保证生命周期是正确的、Send和Sync设置得合理,以及处理好数据竞争。或者更准确的说,是不……要……竞……争。

安全Rust保证了不存在数据竞争。数据竞争指的是:两个或两个以上的线程并发地访问同一块内存其中一个线程做写操作其中一个线程是非同步(unsynchronized)的数据竞争导致未定义行为,所以不可能在安全Rust中存在。大多 ...