并发
Send 与 Sync
Send:类型所有权可在线程间转移。Sync:&T可安全在线程间共享(若T: Sync,则&T: Send等关系见文档)。
闭包自动推导 Send/Sync 约束;违反时编译期报错,而非数据竞争后才发现。
std::thread::spawn
闭包捕获须 'static(无悬挂引用);跨线程共享用 Arc<T> 与内部可变性(Mutex、RwLock)等。
通道
std::sync::mpsc:多生产者单消费者;crossbeam-channel 等在生态中常见。优先消息传递,共享内存其次。
异步(简述)
async/.await 由运行时(Tokio 等)调度;与 OS 线程模型不同,阻塞 syscall 会占用 worker,应使用运行时提供的阻塞池或改造为异步 I/O。