MST

星途 面试题库

面试题:Rust原子操作中获取与修改的基本实现

在Rust中,假设你要对一个原子整数进行获取当前值并将其增加1的操作,使用`std::sync::atomic::AtomicI32`,请写出相应代码,并简单解释原子操作在这里的优势。
50.1万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
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)来保证数据一致性,从而减少了锁带来的开销,提高了程序在多线程环境下的性能。