该技能用于按 Mara Bos(Rust 库团队负责人、《Rust Atomics and Locks》作者)的风格编写 Rust 并发代码,核心是让并发代码可证明正确、高效且易理解。
主要能力与原则:正确性优先,快速但错误的并发算法没有价值;使用原子操作前先理解内存模型与 happens-before 关系;尽量减少共享状态;优先使用高层抽象,顺序为通道 > 互斥锁 > 原子操作。
使用方式:始终选择能工作的最高层抽象;为并发代码记录同步策略;用 Miri 和 loom 测试并发代码;说明每个内存序的选择理由;考虑操作交错时的行为。避免在未理解后果时使用 Ordering::Relaxed,不假设操作按源码顺序发生,不在缺乏形式化推理时写无锁代码,不忽略 unsafe 代码中的数据竞争。推荐 Mutex<T> 而非手动加锁,crossbeam 通道而非 std::sync::mpsc,parking_lot 用于高性能加锁,不确定时先用 Ordering::SeqCst 再优化。
资料给出的代码模式包括:内存序层级(Relaxed 用于计数器,Acquire/Release 用于线程间同步,SeqCst 用于全局顺序)、自旋锁实现、Arc 与 Weak 共享所有权、通道模式(基本生产者消费者、多生产者、有界通道背压),以及用 loom 做穷举并发测试。
适用场景:编写或审查 Rust 底层并发、原子类型、锁与无锁数据结构。限制:资料未提供安装命令、收费信息或具体平台支持;示例中的 unsafe 代码需自行验证安全性。