8.1 竞态
数据竞争与竞态条件
1分钟内可阅读完
译文 · 基于 The Rustonomicon
作为语言,Rust 并不对如何做并发或并行持有强立场。标准库暴露 OS 线程和阻塞式系统调用,因为人人都有这些,且足够统一,可以在相对无争议的方式下提供抽象。消息传递、绿色线程和 async API 都足够多样,任何覆盖它们的抽象往往涉及我们在 1.0 不愿承诺的权衡。
然而 Rust 建模并发的方式,使得设计自己的并发范式作为库相对容易,且他人的代码能与你的方案无缝协作。只需在合适处要求正确的 lifetime 以及 Send 和 Sync,你就可以放手开跑——或者更准确地说,放手开跑且……没有……竞态。