SuperAPI AI 工具集

rust-concurrency

编程与开发

查看项目

更新于 10-15 21:48

技能介绍

用途:该技能面向 Rust 并发与并行代码的设计、实现、诊断和测试,基于标准库 std::thread、std::sync、std::sync::atomic 及 Async Book。适用于多线程处理数据、async/await 书写、Tokio 运行时使用、线程间共享数据、避免数据竞争、高并发服务的限流与优雅关闭、Tokio 通道积压或慢消费者等场景。

主要能力:OS 线程(thread::spawn、Builder、join、scoped threads、move 闭包);同步原语(Mutex、RwLock、Barrier、Condvar、OnceLock、LazyLock);原子类型(AtomicBool/Isize/Usize 及各类操作与 Ordering);mpsc 通道;Send/Sync 自动派生与手工实现;async/await 与 Future;Tokio 运行时(tokio::main、tokio::spawn、select!、JoinSet);异步 I/O;有界队列、背压、过载策略;任务监督、取消安全与优雅关闭;Rayon 数据并行与专用池;Crossbeam 通道、队列、work-stealing deque;分片映射、快照与缓存;Loom 模型检验与 Tokio 运行时诊断。

使用方式:需先理解 Rust 所有权模型(rust-stable 技能);先分类工作负载,再写并发预算,确定状态所有权与通信语义,监督执行并设计优雅关闭,先测量再调优,最后验证模型。Tokio 主用于 I/O 并发,Rayon 用于 CPU 并行,混用需显式交接与独立并发上限。

限制:Unsafe 代码并发执行属 rust-unsafe-ffi 技能,基础所有权/借用属 rust-stable 技能。手册实现 Send/Sync 属 unsafe 契约,不应仅为通过编译而添加。注意 Mutex::lock() 后不要在 drop 前 await、tokio::spawn 的 Future 须 Send + 'static、select! 取消不执行清理、Ordering 需审慎、broadcast lag 需专门处理、max_blocking_threads 不提供背压、JoinSet 按完成顺序返回等。第三方原语会改变语义,基准测试不能替代不变量审查。该技能不收集、存储或传输任何用户数据。