参考答案
结论:std::atomic提供多线程无锁原子操作,避免数据竞争;应用场景:1.并发计数器;2.线程间标志位(如退出标志);3.无锁栈/队列等结构;五种常用操作:1.store(val)原子写;2.load()原子读;3.exchange(val)读旧写新;4.compare_exchange_weak/strong(exp,des)CAS;5.fetch_add(n)原子加法(或fetch_sub);原理:通过CPU原子指令(如x86 LOCK前缀)保证指令不可中断;对比互斥锁,原子操作更轻量但仅支持简单类型。