面试题答案
一键面试use std::sync::atomic::{AtomicI32, Ordering};
fn main() {
let atomic_int = AtomicI32::new(0);
let current_value = atomic_int.fetch_add(1, Ordering::SeqCst);
println!("Current value: {}", current_value);
}
原子操作的优势:
- 线程安全:在多线程环境下,普通的整数操作不是原子的,可能会出现竞态条件。而原子操作
fetch_add
保证了操作的原子性,即这个操作不可被打断,不会出现多个线程同时修改导致数据不一致的情况。 - 无需额外同步机制:使用原子操作,无需像普通变量那样借助锁(如
Mutex
)来保证数据一致性,从而减少了锁带来的开销,提高了程序在多线程环境下的性能。